ExpertiDict

TypeScript · Essencial · Português · Técnico

anotação em desestruturação

/anotaˈsɐ̃w ẽj dezistɾutuɾaˈsɐ̃w/substantivo feminino

Armadilha em que { nome: string } na lista de parâmetros é lido como renomear a variável para string, e não como declarar o tipo de nome.

Onde usar

Quem escreve function f({ nome: string }) acha que tipou, mas apenas renomeou nome; o tipo certo vem depois da desestruturação inteira. É erro clássico em componentes React.

Em código

// '{ nome: n }' renomeia nome para n.
// Não é anotação de tipo!
function a({ nome: n }: { nome: string }) {
  return n;
}
function b({ nome }: { nome: string }) {
  return nome;
}

Exemplos

Esse dois-pontos na desestruturação renomeia a variável, não tipa.

Anota o objeto inteiro depois do padrão de desestruturação.

Cuidado

Não existe sintaxe para anotar um campo desestruturado individualmente: anote o parâmetro todo com um tipo literal de objeto ou uma interface.

Veja também

Todos os termos de TypeScript