typescript --- 映射类型

映射类型:属于ts高级类型,映射类型提供从旧类型中创建新类型的方式。在映射类型中,新类型用相同的方式转换旧类型的每个属性。

条件类型:和映射类型类似,也是在一个类型基础上,执行某些条件操作,形成的新类型。

概念比较绕,不好理解,看例子:

 

已经被记录在标准库的一些常用的工具函数Record,Partial,Pick,Readonly,还有通过infer(后面介绍)实现的ReturnType都是映射类型。

实现方法如下:

1.Record

//实现 
type Record<[T extends keyof any],K> = { 
    [P in T ]: K 
} 

// 测试用例 
type Names = 'USA' | 'CHINA' | 'JAP' 
interface country { name: string space: number } 
type Countries = Record<Names, country> 

// expect: Countries = { USA: country; CHINA: country; JAP: country }

 

2. Partial

//实现 
type Partial<T> = { 
    [K in keyof T ]?: T[K] 
} 

// 测试用例 
interface Colors { 
    yellow: string 
    red: string 
    black: string 
} 

type selectedColor
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值