元组

元组(Tuple)是固定数量的不同类型的元素的组合,是数组的变种

元组与集合的不同之处:元组中的元素类型可以是不同的,而且数量固定

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// 元组
let arr:[a:number,b:boolean] = [114,false]
arr[0] = 514 // OK
arr[1] = true // OK
// arr[1] = "yajue" // 不OK

// 元组可以越界,越界元素会被限制为联合类型,比如这里arr[2]的类型是number|boolean
arr.push(1919) // OK
// arr.push("yajue") // 不OK

// 不能直接给越界元素赋值
// arr[2] = 1919 // 不OK

// 只读元组,完全不能越界
let arr2:readonly[a:number,b:boolean] = [114,false]
arr[0] = 519 // OK
// arr2.push(1919) // 不OK

// 元组内元素可选
let arr3:[a:number,b?:boolean] = [114] // OK

// 取得元组元素的类型
type first = typeof arr[0]
// 取得元组的长度
type len = typeof arr["length"]

元组的应用

元组可以把多个元素作为一个单元传递,能描述表格每行的内容,例如excel返回的数据:

1
2
3
4
5
6
7
let excel: [string, string, number, string][] = [
['title', 'name', 1, '123'],
['title', 'name', 1, '123'],
['title', 'name', 1, '123'],
['title', 'name', 1, '123'],
['title', 'name', 1, '123'],
]