跳到主要内容

Pick

Pick 工具类型可以让我们在一个已有类型的基础上选取部分属性组成一个新的类型,它可以让我们的代码更简洁和容易管理。

句法:

type NewType = Pick<Type, Keys>;

这里的 Type 代表了已有的一个类型,Keys 是你想要在 Type 中选择的部分属性。

例子:

type User = {
id: number;
name?: string;
email?: string;
};

type UserPreview = Pick<User, "id" | "name">;

const user1: UserPreview = {
id: 1,
};

const user2: UserPreview = {
id: 2,
name: "x",
};

const user3: UserPreview = {
name: "y",
};

// user3 会报错:Property 'id' is missing in type '{ name: string; }' but required in type 'UserPreview'.(2741)

上述的例子中,我们在 User 类型的基础上创建了一个新类型 UserPreview,它从中选取了 idname 属性。其中 name 是可选属性,所以 user1user2 变量都可以正常使用的,而 user3 报错了,因为它缺少了必备的 id 属性。