Exhaustiveness Checking, also known as totality, is a feature often seen in pattern-matching languages such as Haskell and OCaml. It ensures the typechecker covers all cases. TypeScript supports exhaustiveness checking in various cases. E.g., when you specify the expected return type of a function.