TS的内置类型-Pick,Omit

简介

今天我们聊聊Typescript的内置工具类型,其中有两个类型颇为有意思。那就是 Pick (选取) Omit (排除)
核心:Pick 与 Omit 从现有类型中得到可复用类型

Pick 作用?

从类型对象中选取指定的属性类型

Omit 作用?

从类型对象中排除指定的属性类型,得到剩余的

案例

例1

 type Person = {
   name: string
   age: number
   gender: 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
  // 用户ID
  id: 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: number
  orderInfo: {
    /** 待付款 */
    paidNumber: number
    /** 待发货 */
    receivedNumber: number
    /** 待收货 */
    shippedNumber: number
    /** 已完成 */
    finishedNumber: number
  }
}

你可能感兴趣的:(#,VUE3,ts)