TypeScript · Intermediário · Inglês · Técnico
exhaustiveness check
Técnica que usa o tipo never para garantir que todos os casos de uma união foram tratados, fazendo o compilador acusar erro quando surge um membro novo sem tratamento.
Onde usar
Entra no default de um switch sobre uma discriminated union. Ao adicionar um caso novo à união, o build quebra exatamente nos lugares que esqueceram de tratá-lo.
Em código
type Forma = 'circulo' | 'quadrado';
function lado(f: Forma): number {
switch (f) {
case 'circulo': return 1;
case 'quadrado': return 2;
default: { const _: never = f; return _; }
}
}Exemplos
Add an exhaustiveness check to the default branch.
Adicione uma exhaustiveness check no ramo default.
The exhaustiveness check caught the new status we forgot.
A exhaustiveness check pegou o status novo que a gente esqueceu.
Cuidado
Sem o default com never, um switch incompleto compila normalmente e só falha em runtime, quando a função cai sem retorno no caso esquecido.
Sinônimos
checagem de exaustividade