TypeScript-Fehler: Indexsignatur-Parametertyp kann kein Union-Typ sein
Hallo zusammen! Ich bin neu in TypeScript und bin auf einen unverständlichen Fehler gestoßen. Ich versuche, ein Objekt zu erstellen, dessen Schlüssel nur zwei String-Typen sein können: `'user'` oder `'admin'`. Ich habe folgenden Code geschrieben:\n\n```typescript\ntype Role = 'user' | 'admin';\ninterface UserData {\n name: string;\n age: number;\n}\n\n// Versuche, ein Objekt zu erstellen, bei dem der Schlüssel die Rolle und der Wert die Benutzerdaten ist\nconst users: { [key: Role]: UserData } = {};\n```\n\nAber TypeScript gibt einen Fehler aus: *"An index signature parameter type cannot be a union type. Consider using a mapped object type instead"*. Ich verstehe, dass Indexsignaturen normalerweise mit `string`, `number` oder `symbol` funktionieren, aber warum kann man keine Union von literal Strings verwenden? Das sind doch auch Strings!\n\nIch brauche, dass das Objekt `users` garantiert die folgende enthält
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs