Avatar ·

Erro TypeScript: parâmetro de índice não pode ser do tipo união (union)

Olá a todos! Sou novo em TypeScript e me deparei com um erro confuso. Estou tentando criar um objeto onde as chaves podem ser apenas dois tipos de string: `'user'` ou `'admin'`. Escrevi o seguinte código: ```typescript type Role = 'user' | 'admin'; interface UserData { name: string; age: number; } // Tentando criar um objeto onde a chave é o papel e o valor são os dados do usuário const users: { [key: Role]: UserData } = {}; ``` Mas o TypeScript gera um erro: *"An index signature parameter type cannot be a union type. Consider using a mapped object type instead"*. Eu entendo que assinaturas de índice geralmente funcionam com `string`, `number` ou `symbol`, mas por que não posso usar uma união de strings literais? Afinal, também são strings! Preciso que o objeto `users` contenha garantidamente apenas as chaves `'user'` e `'admin'`, e que ao tentar acessar `users['guest']` o TypeScript gere um erro em tempo de compilação. Como fazer isso corretamente? Existe alguma sintaxe diferente para esses casos?