Avatar ·

如何在 TypeScript 中为对象的所有元素(索引成员)设置类型?

你好!我最近开始学习 TypeScript,遇到了一个问题。我有一个存储用户数据的对象。键是字符串 ID,值是包含信息的对象。我需要 TypeScript 检查该对象中的所有值是否符合特定类型,无论我使用什么键。 以下是我尝试做的示例: ```typescript interface User { name: string; age: number; } // 我想这样声明一个对象,其中所有值都是 User let users: { [key: string]: User } = {}; users["user1"] = { name: "Alice", age: 30 }; // 正确 users["user2"] = { name: "Bob", age: "25" }; // 错误,age 是字符串,不是数字 ``` 这段代码有效,但我不确定这是否是正确的方法。我听说过 Record,但不知道有什么区别。我还想知道如何让键不仅是字符串,而是具体的值(例如,只有 "admin"、"user"、"guest")。 请告诉我如何正确地进行类型化。