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) {}
}