En Typescript , cuando estamos seguros de que una situación en particular nunca sucederá, usamos el tipo nunca. Por ejemplo, supongamos que construye una función que nunca regresa o siempre lanza una excepción, entonces podemos usar el tipo nunca en esa función. Nunca es un tipo nuevo en TypeScript que denota valores que nunca se encontrarán.
Ejemplo 1: el nulo se puede asignar a void pero nulo no se puede asignar a variables de tipo nunca, ni se puede asignar ningún otro tipo, incluido cualquiera.
Javascript
let variable: void = null; let variable1: never = null; // error let variable2: never = 1; // error let variable3: never = "geek"; // error let variable4: never = true; // error
Salida: No se puede asignar ningún valor de ningún otro tipo a una variable de tipo nunca.
error TS2322: Type 'null' is not assignable to type 'never' ... error TS2322: Type 'number' is not assignable to type 'never' ... error TS2322: Type 'string' is not assignable to type 'never' ... error TS2322: Type 'boolean' is not assignable to type 'never' ...
Ejemplo 2: Usar nunca escribir en una función
Una función que devuelve «nunca» nunca debe tener un punto final, un bucle infinito es un ejemplo de una situación en la que el programa nunca deja de ejecutarse. En el siguiente código hay un bucle for sin principio ni final. no obtenemos nada como salida.
Javascript
function infiniteLoop(): never { for (;;) {} } // Function call infiniteLoop();
La función saludar() nunca deja de ejecutarse, muestra continuamente «hola» y no devuelve nada, por lo que nunca se usa el tipo.
Javascript
function greet(): never { while (true) { console.log("hello"); } } // Function call greet();
Salida: Como se discutió, el tipo nunca debe usarse solo cuando las funciones no devuelven nada o nunca dejan de ejecutarse, en la salida hello se repite infinitamente.
hello hello hello ......
Ejemplo 3: usar el tipo nunca en una función que genera una excepción
En el siguiente código , la función throwTypeerror() no devuelve nada, pero genera un error, por lo que el tipo de función nunca es. el tipo de func() tampoco es nunca, ya que llama a la función throwTypeerror() que no devuelve nada.
Javascript
function throwTypeerror(str: string): never { throw new TypeError(str); } // Return type of this function is "never" function func() { return throwTypeerror("a type error is being raised"); } // Function call func()
Salida: Func() llama a la función throwTyperror() , esa función arroja un error sin devolver nada, por lo que ambas funciones son del tipo nunca.
throw new TypeError(str); TypeError: a type error is being raised
Referencia: https://www.typescriptlang.org/docs/handbook/basic-types.html#never
Publicación traducida automáticamente
Artículo escrito por isitapol2002 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA