转到https://www.typescriptlang.org/play/index.html并粘贴:
let userTypes = {};
let keys = Object.keys[userTypes];
收到错误:
error TS2538: Type '{}' cannot be used as an index type.
为什么?
答案 0 :(得分:8)
Object.keys
返回一组属性。您不能使用对象索引数组;您必须使用数字来表示从数组开始的偏移量。
作为一个等效示例,您希望此代码能做什么?:
var a = [1, 2, 3, 4]
console.log(a[{}]);
这是荒谬的。
编辑:
在阅读OP的评论并再次查看代码之后,我意识到我的评估是错误的。虽然 a 问题是原始代码试图使用对象文字索引keys
函数,但真正的问题是使用方括号而不是括号。这将有效:
let keys = Object.keys(userTypes);
使用keys
调用userTypes
而不是使用索引编制索引。