TypeScript · Essencial · Português · Técnico
anotação em desestruturação
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.