Erreur TypeScript : le paramètre d'index ne peut pas être un type union
Bonjour à tous ! Je suis débutant en TypeScript et j'ai rencontré une erreur que je ne comprends pas. J'essaie de créer un objet dont les clés ne peuvent être que deux types de chaînes : `'user'` ou `'admin'`. J'ai écrit ce code :
```typescript
type Role = 'user' | 'admin';
interface UserData {
name: string;
age: number;
}
// J'essaie de créer un objet où la clé est le rôle et la valeur les données utilisateur
const users: { [key: Role]: UserData } = {};
```
Mais TypeScript génère une erreur : *"An index signature parameter type cannot be a union type. Consider using a mapped object type instead"*. Je comprends que les signatures d'index fonctionnent généralement avec `string`, `number` ou `symbol`, mais pourquoi ne peut-on pas utiliser une union de chaînes littérales ? Ce sont pourtant aussi des chaînes !
J'ai besoin que l'objet `users` contienne uniquement les clés `'user'` et `'admin'`, et que si j'essaie d'accéder à `users['guest']`, TypeScript génère une erreur à la compilation. Comment faire correctement ? Existe-t-il une autre syntaxe pour ce genre de cas ?