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 // expected { 'tesla': 'tesla', 'model 3': 'model 3', 'model X': 'model X', 'model Y': 'model Y'}

解法:

type TupleToObject = {
  [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 是数组下标

你可能感兴趣的:(前端,linux,javascript)