TypeScript 类型体操 —— Pick

122 阅读1分钟

题目链接

Pick

Pick是TypeScript中的一种内置类型,用于从一个对象类型中选择一些属性并创建一个新类型。

例如,假设有一个名为Person的类型,其中包含名字、年龄、电话号码等属性。如果您只需要从该类型中选择名字和年龄,则可以使用Pick

type Person = {
  name: string;
  age: number;
  phone: string;
};

type PersonNameAndAge = Pick<Person, 'name' | 'age'>;

在此示例中,PersonNameAndAge是一个新类型,仅包含Person类型中的nameage属性。

实现

type Pick<T, K extends keyof T> = {
  [P in K]: T[P];
};

在此示例中,Pick是一个泛型类型,它接受两个参数:

  • T:要从中选择属性的对象类型。
  • K:希望从T中选择的属性的键。K必须是T中的键的子集。

返回值是一个新类型,其中包含从T中选择的属性。