Avatar ·

Comment définir un type pour tous les éléments d'un objet (membres indexés) en TypeScript ?

Bonjour ! J'ai récemment commencé à apprendre TypeScript et j'ai rencontré un problème. J'ai un objet qui stocke des données sur les utilisateurs. Les clés sont des ID de type string, et les valeurs sont des objets contenant des informations. J'ai besoin que TypeScript vérifie que toutes les valeurs de cet objet correspondent à un type spécifique, quelles que soient les clés que j'utilise. Voici un exemple de ce que j'essaie de faire : ```typescript interface User { name: string; age: number; } // Voici comment je veux déclarer un objet où toutes les valeurs sont de type User let users: { [key: string]: User } = {}; users["user1"] = { name: "Alice", age: 30 }; // Ok users["user2"] = { name: "Bob", age: "25" }; // Erreur, age est une string, pas un number ``` Ce code fonctionne, mais je ne suis pas sûr que ce soit la bonne approche. J'ai entendu parler de Record, mais je ne comprends pas la différence. Je suis également intéressé par la façon de faire en sorte que les clés ne soient pas simplement des strings, mais des valeurs spécifiques (par exemple, seulement "admin", "user", "guest"). Dites-moi comment typer correctement.