TS元组类型Tuple

Tuple 类型

Tuple Type(中文翻译:元组类型),可以认为是一个有顺序的数组类型。有以下特点:

  1. 可以明确知道包含了多少元素(这里的元素是类型)
  2. 可以明确知道每个类型所在的位置
  3. 长度固定,元组类型的变量需要为每一个位置定义对应类型的值

举例说明

type TuleDemo = [string, number];

上述类型 TuleDemo 定义了一个元组类型,包含了string 和 number 两种类型元素,元组长度为 2,其中第一个元素类型是 string, 第二个元素类型是 number。 

练习:

将一个元组类型转换为对象类型,这个对象类型的键/值和元组中的元素对应。

const tuple = ['tesla', 'model 3', 'model X', 'model Y'] as const

type result = TupleToObject<typeof tuple> // expected { 'tesla': 'tesla', 'model 3': 'model 3', 'model X': 'model X', 'model Y': 'model Y'}

解法:

type TupleToObject<T extends readonly any[]> = {
  [K in T[number]]: K
}

// T = ['string', 'string', 'string', 'string']
// T[number] = tuple
// K = 循环 T[number] = 循环 tuple
// readonly 对应 as const
//  T 是一个 any 类型的数据, 所以这边的 T[number] 应该是代表 取数组的中值 作为 key, number 是数组下标

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值