ExpertiDict

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

assinatura de índice

/asinaˈtuɾa dʒi ˈĩdʒisi/substantivo feminino

Declaração [chave: string]: T que permite a um objeto ter qualquer quantidade de propriedades com chaves do tipo indicado, todas com o mesmo tipo de valor.

Onde usar

Usada em dicionários e mapas de dados dinâmicos. Em PR, vale considerar Record ou Map; e com noUncheckedIndexedAccess o acesso passa a incluir undefined, o que evita surpresas.

Em código

interface Precos {
  [produto: string]: number;
}
const p: Precos = { cafe: 8, leite: 5 };
p['pao'] = 1;
const x = p['inexistente']; // number (!)

Exemplos

Usei uma assinatura de índice porque as chaves vêm do servidor.

Com a assinatura de índice, o acesso por chave retorna number, mesmo se não existir.

Cuidado

Todas as propriedades nomeadas do tipo precisam ser compatíveis com o tipo do índice. E sem noUncheckedIndexedAccess, obj[k] vem como T mesmo quando a chave não existe.

Sinônimos

index signature

Veja também

Todos os termos de TypeScript