En TypeScript, ¿qué tipo se utiliza cuando una función nunca devuelve un valor?

Uso del tipo 'Never' en TypeScript para funciones que nunca devuelven un valor

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.

Related Questions

¿Te resulta útil?