ts内置的工具类型

89 阅读1分钟
  1. pick
pick就是从已有的对象选取部分key 组成新的对象。
type Pick<T, K extends keyof T> = {

[P in K]: T[P];

};
interface Person {

name: string;

age: number;

id: number;

sex: 0 | 1;

}

type Woman = Pick<Person, "name" | "id">;

// 此时 Woman 等效于 Female

interface Female {

name: string;

id: number;

}

2.omit

omit与pick相反,omit从一个类型中剔除一些keys
export interface Contact{ 
name: string; // 姓名
phone?: string; // 手机号 
email: string; // 邮箱 
avatar: string; // 头像 
userid: string; // id 
}
export type OmitEmailContact = Omit<Contact, 'email' >; OmitEmailContact{ 
name: string; 
phone?: string; 
avatar: string; 
userid: string; }

3.Record Record 后面的泛型就是对象键和值的类型。

interface PageInfo {
 title: string;
}

type Page = "home" | "about" | "contact";

const nav: Record<Page, PageInfo> = {
 about: { title: "about" },
 contact: { title: "contact" },
 home: { title: "home" },
};