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