ExpertiDict

TypeScript · Intermediário · Inglês · Técnico

never

/ˈnɛvɚ/substantivo

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

Veja também

Todos os termos de TypeScript