TypeScript · Intermediário · Inglês · Técnico
never
Tipo vazio, sem nenhum valor possível. Marca funções que nunca retornam, ramos inalcançáveis e resultados impossíveis de operações entre tipos.
Onde usar
Aparece na checagem de exaustividade: se um switch sobre uma union deixa um caso de fora, o valor restante não é never e a compilação falha. Também é o retorno de funções que sempre lançam erro.
Em código
function f(x: 'a' | 'b') {
if (x === 'a') return 1;
if (x === 'b') return 2;
const _: never = x; // sobrou never
}
function falhar(m: string): never {
throw new Error(m);
}Exemplos
The default branch assigns to never, so a new case breaks the build.
O ramo default atribui a never, então um caso novo quebra o build.
This function always throws, so its return type is never.
Essa função sempre lança erro, então o retorno dela é never.
Cuidado
Não confunda com void: void é 'não devolve nada de útil', mas a função termina; never é 'nunca chega ao fim', seja por exceção ou por loop infinito.
Sinônimos
bottom type
Antônimos
unknown