TypeScript · Intermediário · Inglês · Técnico
type guard
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