如何在TypeScript中为对象的所有值(除键外)指定类型?
大家好!我有一个用作字典的对象。键是字符串,值是数字。像这样:
```typescript
const myDict = {
apple: 5,
banana: 3,
cherry: 8
};
```
问题在于,TypeScript不会检查该对象中的所有值是否都是数字。如果我不小心写了 `apple: "five"`,不会报错,因为TypeScript推断出的类型是 `{ apple: string | number; banana: number; cherry: number }`,而不是 `{ [key: string]: number }`。
我尝试过使用 `Record`:
```typescript
const myDict: Record = {
apple: 5,
banana: 3,
cherry: 8
};
```
这有效,但现在我无法获得键的自动补全。当我写 `myDict.apple` 时,TypeScript显示类型是 `number`,但不会提示存在哪些具体的键。我需要:
1. 所有值都是同一类型(例如 `number`)。
2. TypeScript知道确切的键(字符串 "apple"、"banana"、"cherry")并提供自动补全。