Erro TypeScript: "An index signature parameter type cannot be a union type" — como corrigir?
Olá, colegas! Sou novo em TypeScript e encontrei um erro que não consigo entender. Tenho um objeto que armazena configurações para diferentes tipos de usuários: 'admin' e 'user'. Quero criar um tipo que garanta que as chaves do objeto sejam apenas essas strings e os valores sejam booleanos. Aqui está meu código:
```typescript
type UserRole = 'admin' | 'user';
interface Settings {
[key: UserRole]: boolean; // Erro!
}
```
TypeScript exibe: "An index signature parameter type cannot be a union type. Consider using a mapped object type instead". Eu pensei que tipos union poderiam ser usados como chaves, mas o compilador discorda. Preciso que o objeto possa conter apenas as propriedades 'admin' e 'user', e que ao tentar acessar outra chave (por exemplo, 'guest'), o TypeScript exiba um erro. Como fazer isso corretamente? Vi que na documentação mencionam mapped types, mas não entendo bem como aplicá-los no meu caso. Agradeço por uma explicação clara com exemplos.