ts中pick的使用场景
时间: 2023-04-10 17:02:59 浏览: 107
Pick 是 TypeScript 中的一个工具类型,它可以从一个对象中选取部分属性,返回一个新的对象类型。它的使用场景包括但不限于:1. 从一个大型的对象中选取需要的属性,以便进行某些操作;2. 从一个接口中选取需要的属性,以便创建一个新的接口;3. 从一个函数的参数中选取需要的属性,以便进行某些操作。
相关问题
ts Pick
在 TypeScript 中,`Pick` 是一个内置类型工具,用于从一个对象类型中选取部分属性并创建一个新的类型。
`Pick` 的定义如下:
```typescript
type Pick<T, K extends keyof T> = {
[P in K]: T[P];
};
```
其中,`T` 表示原始对象的类型,`K` 表示需要选取的属性名的联合类型。`Pick` 的返回值是一个新的类型,它包含了原始对象中指定属性的类型。
例如,假设有一个 `Person` 接口:
```typescript
interface Person {
name: string;
age: number;
address: string;
}
```
现在,我们需要从 `Person` 中选取 `name` 和 `age` 两个属性,可以使用 `Pick` 来实现:
```typescript
type PersonNameAndAge = Pick<Person, 'name' | 'age'>;
// 等价于
interface PersonNameAndAge {
name: string;
age: number;
}
```
这里的 `PersonNameAndAge` 类型就是通过 `Pick` 从 `Person` 中选取 `name` 和 `age` 两个属性得到的新类型。注意,`Pick` 的第二个参数是一个属性名的联合类型,可以使用 `|` 来表示多个属性名。
ts当中的Exclude的使用场景
Exclude<T, U> 是 TypeScript 中的一个内置类型,它用于从类型 T 中排除类型 U。它的使用场景是在定义泛型类型时,需要排除某些类型。例如,我们可以使用 Exclude 来定义一个只包含 number 类型的数组:
type NumberArray = Array<number>;
type NonNumberArray = Exclude<Array<any>, NumberArray>;
在这个例子中,我们使用 Exclude 来排除 number 类型,从而得到一个只包含非 number 类型的数组类型 NonNumberArray。