通过例子来介绍以上三个方法,首先定义一个普通类型
interface Person {
name: string;
age: number;
sex: "男" | "女";
}
Pick: 通过泛型选择指定的属性生成新的类型
type PersonPick = Pick<Person, 'name'>;
const person2: PersonPick = {
name: "雅雅",
};
// 此时PersonPick类型为:
// {
// name: 'string'
// }
相当于在Person类型里选出了name属性生成一个新的类型PersonPick
Omit: 通过泛型删除指定属性生成新的类型
type PersonOmit = Omit<Person, "age">;
const person1: PersonOmit = {
name: "小明",
sex: "男",
};
// 此时PersonOmit类型为:
// {
// name: string;
// age: number;
// }
相当于在Person类型里删掉age属性,然后把剩下的组成一个新的类型
Partial: 通过泛型让目标类型中的所有属性变为可选属性生成一个新的类型
type PersonPartial = Partial<Person>;
const person3: PersonPartial = {
name: "",
};
// 此时PersonPartial类型为:
// {
// name?: string;
// age?: number;
// sex?: "男" | "女";
// }