TypeScript · Essencial · Inglês · Técnico
Record
Utility type Record<K, V>, que cria um tipo de objeto com chaves K e valores V. Quando K é uma união literal, exige uma entrada para cada chave.
Onde usar
Usado em dicionários e tabelas de lookup, como Record<string, number> ou Record<Status, string> para dar um rótulo a cada status. Se esquecer um status, o compilador reclama.
Em código
type Status = 'novo' | 'pago' | 'enviado';
const rotulo: Record<Status, string> = {
novo: 'Novo',
pago: 'Pago',
enviado: 'Enviado',
};
const t = rotulo['pago']; // stringExemplos
Type the lookup table as a Record of status to label.
Tipe a tabela de consulta como um Record de status para rótulo.
Record with a union key forces you to cover every case.
Record com chave em união obriga a cobrir todos os casos.
Cuidado
Com K = string, ler uma chave inexistente devolve undefined em runtime, mas o tipo diz V, a menos que noUncheckedIndexedAccess esteja ligado.
Sinônimos
dicionário tipado