在 TypeScript 中,元组(Tuple) 是一种特殊的数组类型,它允许存储固定数量的元素,并且每个元素的类型可以不同。元组的定义和数组类似,但它的元素数目和类型是固定的,适合表示具有固定长度且元素类型不同的集合。


目录

  1. 基本语法
  2. 创建元组
  3. 元组访问与修改
  4. 元组的类型推断
  5. 元组的常用操作
  6. 元组与数组的对比
  7. 元组解构
  8. 参考资料

1. 基本语法

元组的基本语法与数组相似,但在定义时需要指定元素类型,并且元素的个数和类型可以不同。

示例:

let tuple: [string, number, boolean] = ['Alice', 25, true];

在上面的例子中,元组 tuple 包含了一个字符串、一个数字和一个布尔值,分别对应三个不同的元素类型。


2. 创建元组

元组可以使用方括号 [] 来创建,并通过逗号分隔每个元素。元组中的元素可以是任何类型,可以混合使用不同的数据类型。

示例:

let person: [string, number] = ["John", 30];  // 字符串和数字
let settings: [boolean, string] = [true, "Dark"];  // 布尔值和字符串
let coordinates: [number, number] = [40.7128, 74.0060];  // 经纬度


3. 元组访问与修改

可以通过索引访问元组中的元素,索引从 0 开始。

示例:

let tuple: [string, number, boolean] = ['Alice', 25, true];

console.log(tuple[0]);  // 输出: Alice
console.log(tuple[1]);  // 输出: 25

// 修改元组元素
tuple[1] = 30;  // 将数字 25 修改为 30
console.log(tuple[1]);  // 输出: 30


4. 元组的类型推断

TypeScript 会自动推断元组的类型。如果你为元组提供了初始值,TypeScript 会根据值的类型推断出元组类型。

示例:

let tuple = ["Alice", 25];  // TypeScript 会推断出类型 [string, number]

如果你定义元组时没有初始化值,可以显式声明元组的类型。

示例:

let tuple: [string, number];
tuple = ["John", 28];  // 正确
tuple = [28, "John"];  // 错误,类型不匹配


5. 元组的常用操作

除了基本的访问和修改,TypeScript 元组还支持一些操作,如推断其类型、使用元组的 length 属性等。

示例:

let tuple: [string, number, boolean] = ["Alice", 25, true];

// 获取元组长度
console.log(tuple.length);  // 输出: 3

// 使用 .push() 添加元素
tuple.push(10);  // 添加一个新元素
console.log(tuple);  // 输出: [ 'Alice', 25, true, 10 ]

需要注意,使用 .push() 添加元素时,TypeScript 并不会强制检查添加的元素类型是否符合元组的类型定义。


6. 元组与数组的对比

  • 元素个数: 元组的元素个数是固定的,而数组的元素个数可以变化。
  • 元素类型: 元组可以包含不同类型的元素,而数组通常包含相同类型的元素。
特性元组 (Tuple)数组 (Array)
长度固定长度可变长度
类型元素类型可不同元素类型相同
使用场景适用于表示固定结构的数据适用于表示集合、列表等

示例:

let tuple: [string, number] = ["Alice", 25];
let array: number[] = [1, 2, 3, 4];


7. 元组解构

与数组一样,元组也可以进行解构赋值,可以同时获取元组中的多个元素。

示例:

let tuple: [string, number, boolean] = ['Alice', 25, true];

// 解构元组
let [name, age, isActive] = tuple;

console.log(name);     // 输出: Alice
console.log(age);      // 输出: 25
console.log(isActive); // 输出: true


8. 参考资料

📌 出站链接:

🔗 站内链接:


元组是 TypeScript 中一种非常有用的数据结构,能够帮助开发者准确表示固定长度且类型不相同的集合。在实际开发中,元组常常用于返回多个值或表示函数的参数集。