El tipo never representa el tipo de valores que nunca ocurren. Por ejemplo, never es retornado por la expresión de una función que siempre lanza una excepción o alguna que nunca retorna valores.
El tipo never es un subtipo, que es asignable a cualquier tipo, sin embargo ningĆŗn tipo es un subtipo de never, un tipo never solo puede ser asignado con el valor never. Incluso any no puede ser asignado a never.
// esta funcion no tiene un punto final ya que dispara una excepcion
function error(mensaje: string): never {
throw new Error(mensaje);
}
// esta funcion no tiene un punto final ya que dispara un error
function fallo(): never {
return error("Reportar fallo");
}
// esta funcion no finaliza ya que posee un loop infinito
function loopInfinito(): never {
while (true) {}
}