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
,它从中选取了 id
和 name
属性。其中 name
是可选属性,所以 user1
和 user2
变量都可以正常使用的,而 user3
报错了,因为它缺少了必备的 id
属性。