首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打字稿: for (让键在obj),‘key’是`Extract<keyof T,string>`而不是‘`keyof’,为什么?

打字稿: for (让键在obj),‘key’是`Extract<keyof T,string>`而不是‘`keyof’,为什么?
EN

Stack Overflow用户
提问于 2019-03-14 15:31:42
回答 1查看 667关注 0票数 1

我想在iterate上使用object,当我使用for-in时,我注意到一件非常奇怪的事情:

代码语言:javascript
复制
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截图:

这就引出了两个问题:

  1. 为什么key的类型是Extract<keyof T, string>而不是keyof T
  2. 对象的key总是字符串类型,所以Extract<keyof T, string>什么也不做,对吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-22 21:40:09

TypeScript 2.9扩展键类型以包括数字和符号类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55166435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档