Erreur TypeScript : "An index signature parameter type cannot be a union type" — comment corriger ?
Bonjour, collègues ! Je suis novice en TypeScript et j'ai rencontré une erreur que je ne comprends pas. J'ai un objet qui stocke les paramètres pour différents types d'utilisateurs : 'admin' et 'user'. Je veux créer un type qui garantit que les clés de l'objet ne seront que ces chaînes et que les valeurs seront booléennes. Voici mon code :
```typescript
type UserRole = 'admin' | 'user';
interface Settings {
[key: UserRole]: boolean; // Erreur !
}
```
TypeScript affiche : "An index signature parameter type cannot be a union type. Consider using a mapped object type instead". Je pensais que les types union pouvaient être utilisés comme clés, mais le compilateur n'est pas d'accord. J'ai besoin que l'objet ne puisse contenir que les propriétés 'admin' et 'user', et que si on essaie d'accéder à une autre clé (par exemple, 'guest'), TypeScript génère une erreur. Comment faire correctement ? J'ai vu que la documentation mentionne les mapped types, mais je ne comprends pas bien comment les appliquer dans mon cas. Je serais reconnaissant pour une explication claire avec des exemples.