如何理解type Pick<T, K extends keyof T>
时间: 2024-06-03 16:08:45 浏览: 101
type Pick<T, K extends keyof T> 表示从类型 T 中选取属性名为 K 的属性,形成一个新的类型。其中,K extends keyof T 表示 K 必须是 T 中的属性名。这个类型的作用是,可以帮助我们从一个大的类型中选取需要的属性,形成一个新的类型,减少类型冗余和复杂度,提高代码的可维护性和可读性。
相关问题
如何理解type Pick<T, K extends keyof T> = { [P in K]: T[P]; };
这是一个 TypeScript 的类型操作符,用于从一个对象类型 T 中获取某些属性 K 组成一个新的类型。
具体来说,Pick<T, K> 的返回值类型是一个新的对象类型,它只包含 T 中指定的 K 属性,属性值的类型与 T 中对应属性的类型相同。
例如,如果定义了一个类型 Person,它有 name、age 和 gender 三个属性:
```
type Person = {
name: string;
age: number;
gender: 'male' | 'female';
}
```
我们可以使用 Pick<T, K> 来获取其中的某些属性:
```
type NameAndAge = Pick<Person, 'name' | 'age'>;
```
这样,NameAndAge 的类型就是:
```
type NameAndAge = {
name: string;
age: number;
}
```
其中,[P in K]: T[P] 表示 for...in 循环遍历 K 中的属性名称,并从 T 中获取对应属性的类型。
阅读全文