-
Pick 可以从一个对象类型中 取出某些属性
-
type Person = { name: string age: number } type PickPerson = Pick<Person, 'age'> // PickPerson === { age: string } -
Omit 可以从一个对象类型中 排出某些属性
-
type Person = { name: string age: number } type OmitPerson = Omit<Person, 'age'> // OmitPerson === { name: string }场景: -
有
User对象类型,现在需要UserInfo类型,字段多一些 -
使用 交叉类型 可以复用
User类型,但是不需要 token 属性
-export type User = { token: string id: string account: string mobile: string avatar: string } type OmitUser = Omit<User, 'token'> export type UserInfo = OmitUser & { /** 关注 */ likeNumber: number /** 收藏 */ collectionNumber: number /** 积分 */ score: number /** 优惠券 */ couponNumber: number orderInfo: { /** 待付款 */ paidNumber: number /** 待发货 */ receivedNumber: number /** 待收货 */ shippedNumber: number /** 已完成 */ finishedNumber: number } }