当前位置: 首页 > 知识库问答 >
问题:

前端 - TS 中 in keyof 的用法?

徐柏
2023-05-17

下面这一段 TS 代码是什么意思,如果我把 T 传入 Animal 类型,Simplify 的类型是什么样子的?仍然是跟 Animal 一样的类型吗?

interface Animal {
  name: string;
  age: number;
}
type Simplify<T> = {
  [P in keyof T]: T[P];
};

共有2个答案

马和硕
2023-05-17

keyof类似于js中的Object.keys,所以keyof Animal等于'name'|'age'这样的联合类型,in就相当于遍历集合中的每一个,所以最终Simplify等于Animal

佟嘉祯
2023-05-17

image.png
第7行的代码,in keyof就相当是for in循环,依次取出泛型T里面的键名,并根据键名取对应的值类型,所以这就是一个通用的类型复制

 类似资料: