我想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's type isExtract<keyof T, string>而不是 justkeyof T? - Object 的
key总是字符串类型,所以Extract<keyof T, string>什么都不做,对吧?
