【发布时间】:2019-08-05 13:53:46
【问题描述】:
我想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? - 对象的
keys 总是字符串类型,所以Extract<keyof T, string>什么都不做,对吧?
【问题讨论】:
-
TypeScript 2.9 expanded 键类型还包括
number和symbol类型。 -
谢谢你,你回答了我的问题。
标签: typescript for-loop generics extract keyof