En TypeScript, el tipo never
tiene una función muy específica: representa un valor que nunca ocurre. Más concretamente, es el tipo de valor que una función jamás devuelve.
Entender el tipo never
puede ser un poco complicado al principio, porque puede parecer que es similar a void
pero no es exactamente igual. Mientras que void
se utiliza para describir funciones que no devuelven un valor útil (como las funciones que solo muestran alertas o mensajes en consola), never
está diseñado para funciones que nunca retornan nada, nunca terminan o siempre lanzan un error.
Aquí te proporciono un par de ejemplos para ilustrarlo mejor:
function lanzaError(mensaje: string): never {
throw new Error(mensaje);
}
En este primer ejemplo, la función lanzaError
siempre lanza un error y nunca devuelve ningún valor. Por lo tanto, su tipo de retorno debe ser never
.
function bucleInfinito(): never {
while (true) {}
}
En este segundo ejemplo, la función bucleInfinito
entra en un bucle que no tiene ninguna condición de salida, lo que significa que esta función nunca terminará y, por lo tanto, nunca retornará ningún valor. Entonces, su tipo de retorno es never
.
En general, el tipo never
raras veces se usaría en las tipificaciones de datos de uso diario. Más bien, se considera como una forma de TypeScript para ayudar a los desarrolladores a cubrir todos los escenarios de control de flujo posibles. Aun así, es un importante componente en el robusto sistema de tipos de TypeScript, y comprender su uso y aplicación puede hacer que tu código sea más seguro y predecible.