首页 > 其他 > 详细

映射属性,Required、Partial与Pick

时间:2020-01-31 21:27:21      阅读:102      评论:0      收藏:0      [点我收藏+]

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

这里需借助 映射属性 (不能用于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

映射属性,Required、Partial与Pick

原文:https://www.cnblogs.com/yanze/p/12246686.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!