Avatar ·

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 ?