我想在iterate
上object
,当我使用for-in
时,我注意到一件很奇怪的事情:
function forIn<T extends object>(obj: T): void {
for (let key in obj) {
// key's type is `Extract<keyof T, string>` instead of just `keyof T`
}
}
我的VSCode屏幕截图:
这给我带来两个问题:
key
的类型是Extract<keyof T, string>
而不是keyof T
?key
始终是字符串类型,所以Extract<keyof T, string>
完全不执行任何操作,对吧?答案 0 :(得分:0)
TypeScript 2.9扩展了键类型,使其还包括数字和符号类型。