通過例子來介紹以上三個(gè)方法,首先定義一個(gè)普通類型
interface Person {
name: string;
age: number;
sex: "男" | "女";
}
Pick: 通過泛型選擇指定的屬性生成新的類型
type PersonPick = Pick<Person, 'name'>;
const person2: PersonPick = {
name: "雅雅",
};
// 此時(shí)PersonPick類型為:
// {
// name: 'string'
// }
相當(dāng)于在Person類型里選出了name屬性生成一個(gè)新的類型PersonPick
Omit: 通過泛型刪除指定屬性生成新的類型
type PersonOmit = Omit<Person, "age">;
const person1: PersonOmit = {
name: "小明",
sex: "男",
};
// 此時(shí)PersonOmit類型為:
// {
// name: string;
// age: number;
// }
相當(dāng)于在Person類型里刪掉age屬性纯命,然后把剩下的組成一個(gè)新的類型
Partial: 通過泛型讓目標(biāo)類型中的所有屬性變?yōu)榭蛇x屬性生成一個(gè)新的類型
type PersonPartial = Partial<Person>;
const person3: PersonPartial = {
name: "",
};
// 此時(shí)PersonPartial類型為:
// {
// name?: string;
// age?: number;
// sex?: "男" | "女";
// }