The never type represents a type that can't exist. It is in contrast to the void type as it isn't something that returns. It gets defined for a function that never returns (like an infinite loop). It also is used in the cases where you want to disallow a certain type. In a type condition you can define a type that will never be of another type, but may be one of anything else.