ExpertiDict

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

type guard

/taɪp ɡɑɹd/substantivo

Expressão ou função que verifica um valor em runtime e faz o compilador estreitar o tipo no ramo seguinte. Inclui typeof, instanceof, in e funções com predicado de tipo.

Onde usar

Aparece ao tratar dados que vêm de fora, como respostas de API ou erros capturados, em que o tipo é unknown ou uma união. A função concentra a verificação em um só lugar e a reutiliza.

Em código

function ehData(v: unknown): v is Date {
  return v instanceof Date;
}
function ano(v: unknown) {
  if (ehData(v)) return v.getFullYear();
  return null;
}

Exemplos

Write a type guard for this API response.

Escreva um type guard para essa resposta da API.

The type guard says it's a Date, but we never check that.

O type guard diz que é uma Date, mas a gente nunca confere isso.

Cuidado

Um type guard escrito errado mente para o compilador, que confia no retorno dele, e por isso cria bugs sem nenhum aviso.

Sinônimos

guarda de tipo

Veja também

Todos os termos de TypeScript