TypeScript(、JavaScript)无法通过typeof Object[‘key‘]的方式获取Object某些属性类型的原因
在TypeScript或JavaScript中,使用typeof Object['key']
的方式来获取Object
某个属性的类型是不可行的,因为Object
是一个内置的构造函数,并不包含可直接访问的属性键值对。
如果你想要获取某个对象属性的类型,你可以使用类型查询,例如:
type ObjType = typeof someObject;
type KeyType = ObjType['key'];
这里,someObject
是你想要查询的对象,ObjType
是这个对象的类型,而KeyType
则是对象某个属性(假设是'key'
)的类型。
如果你想要获取内置对象的属性类型,比如Object.prototype
上的属性,你可以直接使用类型。例如,获取Object.prototype.toString
的类型:
type ToStringType = ObjectPrototype['toString'];
其中ObjectPrototype
是Object.prototype
的类型别名。
但是,Object.prototype
上并没有通过字面量属性形式定义的属性,所以你不能直接通过Object['key']
这样的方式获取它们的类型。你需要通过类型查询或其他方式来获取这些属性的类型。
评论已关闭