ExpertiDict

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

exhaustiveness check

/ɪɡˈzɔstɪvnəs tʃɛk/substantivo

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

Veja também

Todos os termos de TypeScript