如何理解type Pick<T, K extends keyof T>
时间: 2024-06-03 13:08:45 浏览: 6
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 中获取对应属性的类型。
public class PageInfo<T> extends PageSerializable<T>
这是一个泛型类 PageInfo,继承自 PageSerializable<T>。其中,T 表示泛型参数,可以在实例化类时指定具体的类型。PageSerializable<T> 是 PageInfo 类的父类,表示可序列化的分页信息。PageInfo<T> 可以用于存储分页查询的结果,包括查询的总数、页码、每页显示的记录数以及当前页的数据列表等信息。通过 PageInfo<T> 类,可以方便地对分页查询的结果进行封装和传递。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)