Dynamically Creating Properties
Diferença entre JavaScript e TypeScript
JavaScript: permite adicionar propriedades a um objeto simplesmente atribuindo valores a nomes de chave novos.
let obj = {}; obj.novaProp = "valor"; // funciona sem problemasTypeScript: exige que todas as propriedades estejam definidas na interface ou classe. Se você tentar adicionar uma propriedade não declarada, o compilador gera erro.
O papel do index signature
Um index signature permite que você defina dinamicamente propriedades em um objeto, mas ainda com tipagem segura.
Sintaxe:
[key: string]: TipoDoValor;
Exemplo
O que acontece:
ProductGrouprecebe tuplas[string, Product]e cria propriedades dinamicamente.O index signature
[propertyName: string]: Product;garante que qualquer chave adicionada terá como valor umProduct.Assim,
group.haté válido e tipado corretamente.
Por que isso é importante
Sem index signature, o compilador trataria as propriedades criadas dinamicamente como
any, o que quebra a segurança de tipos.Com
noImplicitAnyoustrictativados, isso geraria erro.O index signature evita esse problema e mantém o código seguro e flexível.