Skip to content

Pick

从一个复合类型中挑选出想要的类型的组合

ts
type Pick<T, K extends keyof T> = {
  [key in K]: T[key]
}

栗子

ts
const person = {
    "name": "张三",
    "age": 12,
    "address": "南京"
}

type Person = typeof person;
type PersonKeys = keyof Person;

type MiniPerson = Pick<typeof person, "name" | "age">; // { "name": string; "age": number; }

// 错误的 ,不能从联合类型中挑选想要的Key的组合
type MiniPersonKeys = Pick<PersonKeys, "name" | "age">; 
// 正确的
type MiniPersonKeys = Extract<PersonKeys, "name" | "age">;   // "name" | "age"