Avatar ·

Wie lege ich den Typ für alle Elemente eines Objekts (Indexsignaturen) in TypeScript fest?

Hallo! Ich habe kürzlich angefangen, TypeScript zu lernen, und bin auf ein Problem gestoßen. Ich habe ein Objekt, das Benutzerdaten speichert. Die Schlüssel sind String-IDs und die Werte sind Objekte mit Informationen. Ich möchte, dass TypeScript überprüft, ob alle Werte in diesem Objekt einem bestimmten Typ entsprechen, unabhängig davon, welche Schlüssel ich verwende. Hier ist ein Beispiel, was ich versuche: ```typescript interface User { name: string; age: number; } // So möchte ich ein Objekt deklarieren, bei dem alle Werte User sind let users: { [key: string]: User } = {}; users["user1"] = { name: "Alice", age: 30 }; // Ok users["user2"] = { name: "Bob", age: "25" }; // Fehler, age ist ein String, keine Zahl ``` Dieser Code funktioniert, aber ich bin mir nicht sicher, ob das der richtige Ansatz ist. Ich habe von Record gehört, verstehe aber den Unterschied nicht. Außerdem interessiert mich, wie ich erreichen kann, dass die Schlüssel nicht nur Strings sind, sondern konkrete Werte (z.B. nur "admin", "user", "guest"). Könnt ihr mir sagen, wie ich das richtig typisiere?