As described in the TypeScript documentation, the never type has the following characteristics:
- The never type is a subtype of and assignable to every type.
- No type is a subtype of or assignable to never (except never itself).
- In a function expression or arrow function with no return type annotation, if the function has no return statements or only return statements with expressions of type never and, if the end point of the function is not reachable (as determined by control flow analysis), the inferred return type for the function is never.
- In a function with an explicit never return type annotation, all return statements (if any) must have expressions of a type never and the end of the function must not be reachable.