En TypeScript, cuando hablamos de una función que nunca devuelve un valor, nos referimos a la que no tiene un final accesible. Es decir, no tiene una salida porque, por ejemplo, se ejecuta un bucle infinito o lanza un error. Para este tipo de funciones, TypeScript tiene un tipo especial llamado 'Never'.
El tipo 'Never' en TypeScript es de gran utilidad y se utiliza de una forma muy específica. Está destinado a representar valores que nunca ocurren, como cuando una función nunca llega al final.
function error(message: string): never {
throw new Error(message);
}
function infiniteloop(): never {
while (true) {}
}
En el ejemplo anterior, la función error
lanzará un error y la función infiniteloop
entrará en un bucle infinito. Ambas nunca llegan a un final accesible, por lo tanto, devuelven un tipo 'Never'.
Es importante mencionar que el tipo 'Never' es distinto a los tipos 'Void', 'Undefined' y 'Null'. Cuando una función se declara con el tipo 'Void', significa que no retorna ningún valor o su retorno no es relevante, mientras que 'Undefined' y 'Null' son valores específicos.
El uso correcto de los tipos en TypeScript permite un desarrollo más seguro y evita posibles errores en tiempo de ejecución. Una buena práctica es emplear el tipo adecuado según los requerimientos de la función y el valor que esta retorne. En particular, el uso del tipo 'Never' añade robustez al código porque permite a TypeScript detectar posibles errores, como puntos inaccesibles en el código (por ejemplo, un bucle infinito). Por este motivo, siempre es recomendable usar 'Never' cuando una función nunca devuelve un valor.