有时候需要一个类型,它依赖于上一个类型,但对属性的要求却不同,简而言之:从旧类型中创建新类型

这里需借助 映射属性 (不能用于interface,只能用于type!)

 

全转为readonly

type Readonly<T> = {
    readonly [P in keyof T]: T[P];
}
type ReadonlyPerson = Readonly<Person>

备注:Person可为interface或type

 

全转为Partial

interface Person {
  name: string;
  age: number;
}

type Partical<T>= {
  [P in keyof T]?: T[P];
}

type ParticalPerson= Partical<Person>

interface ParticalInterfacePerson extends ParticalPerson {} //借助type转换interface

 

转换为Pick (筛选一部分属性)注意in

interface Person {
    name: string;
    age: number;
}

type Pick1<T, K extends keyof T>= {
    [P in K]?: T[P];
}

type PickPerson= Pick1<Person, 'name'>

 

备注:Pick、Required、Partial现已内置于typescript

相关文章:

  • 2022-12-23
  • 2021-10-25
  • 2021-07-31
  • 2021-10-04
  • 2021-11-14
  • 2022-12-23
  • 2022-12-23
  • 2021-12-18
猜你喜欢
  • 2022-02-15
  • 2022-12-23
  • 2022-12-23
  • 2021-07-30
  • 2021-09-12
  • 2022-12-23
  • 2021-10-26
相关资源
相似解决方案