如何在 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")。
请告诉我如何正确地进行类型化。