元组(Tuple)是 TypeScript 中的一种特殊数据类型,它允许你定义一个固定数量和类型的元素组合。元组可以包含不同类型的数据,每个数据的类型在元组中都是固定的。以下是 TypeScript 中元组的基本用法和特点:
// 声明一个元组
let person: [string, number, boolean];
person = ['Alice', 25, true];
console.log(person[0]); // 输出:Alice
console.log(person[1]); // 输出:25
// 错误示例,访问超出索引范围的元素
// console.log(person[3]); // 错误:Tuple type '[string, number, boolean]' of length '3' has no element at index '3'.
// 错误示例,类型不匹配
// person = ['Bob', '30', false]; // 错误:Type 'string' is not assignable to type 'number'.
const arr: readonly [number, boolean] = [1,true];
// readonly 设置为只读,以下都不可以修改
// arr[0] = 666
// arr.push(1)
// 如果只是用 const 修饰 arr,则 arr 不可以修改,arr[0] 等可以修改
也可以起变量名:
元组的特点:
-
元组可以包含多种不同类型的数据,但每个数据的类型是固定的,按照声明的顺序排列。
-
元组的长度是固定的,一旦声明,就不能改变。你不能往元组中添加或删除元素。
-
可以通过索引来访问元组中的元素,索引从 0 开始。
-
元组的类型根据声明时的类型推断来确定,可以在声明时明确指定类型。
-
如果访问超出了元组的索引范围,TypeScript 将会报错。
type
和 typeof
的用法:
const arr: readonly [x:number, y:boolean] = [1,false];
// type first = number
type first = typeof arr[0]
// type len = 2
type len = typeof arr['length']