Avatar ·

如何在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")并提供自动补全。