TypeScript Exhaustiveness Checking Part 2