使用 Object.keys(obj)
时,返回值为 string[]
,而我想要一个 (keyof obj)[]
。
const v = {
a: 1,
b: 2
}
Object.keys(v).reduce((accumulator, current) => {
accumulator.push(v[current]);
return accumulator;
}, []);
我有错误:
元素隐含地具有“任何”类型,因为类型 ‘{ a: number; b:号码; }’ 没有索引签名。
带有 strict: true
的 TypeScript 3.1。 Playground: 在这里,请勾选 Options
中的所有复选框以激活 strict: true
。
原文由 jeanpaul62 发布,翻译遵循 CC BY-SA 4.0 许可协议
Object.keys
返回一个string[]
。这是设计使然,如 本期 所述有几种解决方案,最简单的一种是只使用类型断言:
您还可以在
Object
keys
创建一个别名,这将返回您想要的类型: