简介
今天我们聊聊Typescript的内置工具类型,其中有两个类型颇为有意思。那就是 Pick (选取)
和 Omit (排除)
。
核心:Pick 与 Omit 从现有类型中得到可复用类型
Pick 作用?
从类型对象中选取
指定的属性类型
Omit 作用?
从类型对象中排除
指定的属性类型,得到剩余的
案例
例1
type Person = {name: stringage: numbergender: 0 | 1
}// 取出Person中得name,age得到新的类型PickPerson
// type PickPerson = {
// name: string;
// age: number;
// }
type PickPerson = Pick<Person, 'name' | 'age'>// 排除Person中得age,gender得到新的类型OmitPerson
// type OmitPerson = {
// name: string;
// }
type OmitPerson = Omit<Person, 'age' | 'gender'>
例2
export type User = {// token令牌token: string// 用户IDid: string// 用户名称account: string// 手机号mobile: string// 头像avatar: string
}// 个人信息(在User的基础上排除'token'并添加其他)
type OmitUser = Omit<User, 'token'>
export type UserInfo = OmitUser & {/** 关注 */likeNumber: number/** 收藏 */collectionNumber: number/** 积分 */score: number/** 优惠券 */couponNumber: numberorderInfo: {/** 待付款 */paidNumber: number/** 待发货 */receivedNumber: number/** 待收货 */shippedNumber: number/** 已完成 */finishedNumber: number}
}