11. Pick、Omit、Partial
于2023-10-22 13:19:45发布
44
Pick
Pick的功能是从一个interface接口中,挑选一些自己想要的属性。例子:
interface Person {
id: number;
name: string;
age: number;
sex: string;
hobby: string;
canDriveBike: boolean;
}
type Ipdata = Pick<Person, 'name' | 'age' | 'sex'>; // 把Person接口中的name、age、sex取出,然后组成type
const p:Ipdata = { // 使用
name: 'tom',
age: 15,
sex: 'boy'
}
Omit
Omit的功能和Pick相反,它是从一个interface接口中,把不想要的接口属性去掉。例子:
interface Person {
id: number;
name: string;
age: number;
sex: string;
hobby: string;
canDriveBike: boolean;
}
type Ipdata = Omit<Person, 'name' | 'age' | 'sex'>; // 把Person接口中的name、age、sex剔除,然后组成type
const p:Ipdata = {
id: 1,
hobby: '唱歌',
canDriveBike: true
}
Partial
Partial的功能是把一个接口的所有属性都设置为可选。例子 :
interface Person {
id: number;
name: string;
age: number;
sex: string;
hobby: string;
canDriveBike: boolean;
}
type Ipdata = Partial<Person>
const p:Ipdata = {
id: undefined, // 不报错
name: undefined // 不报错
}
Partial<Person>这句话的作用是把Person接口的所有属性变成这样 :
interface Person {
id?: number | undefined;
name?: string| undefined
age?: number| undefined
sex?: string| undefined
hobby?: string| undefined
canDriveBike?: boolean| undefined
}
tips:上面的3个属性都只能用type接收,不能使用interface