# 元组
# 基本用法
数组合并了相同类型的对象, 而元组(Tuple)合并了不同类型的对象.
let tom: [string, number] = ["Tom", 25];
Copied!
1
定义元组类型必须与实际数组的每项类型一一对应.
let tom: [string, number] = ["Tom", 25, 12]; // X let tom: [string, number] = ["Tom"]; // X let tom: [string, number] = [25, "Tom"]; // X
Copied!
1
2
3
2
3
# 访问元组里的 item
tom[0]; // 'Tom'
Copied!
1
# 赋值
tom[1] = 24;
Copied!
1
赋值是可以分开做的, 但是初始化必须把所有元组里指定的类型写上:
let tom: [string, number]; tom = ["Tom", 25]; // right let tom: [string, number]; tom = ["Tom"]; // Property '1' is missing in type '[string]' but required in type '[string, number]'.
Copied!
1
2
3
4
5
6
7
2
3
4
5
6
7
# 越界的元素
当添加越界的元素时,它的类型会被限制为元组中每个类型的联合类型:
let tom: [string, number]; tom = ["Tom", 25]; tom.push("male"); tom.push(true); // Argument of type 'true' is not assignable to parameter of type 'string | number'.
Copied!
1
2
3
4
5
6
2
3
4
5
6
← 类型别名 & 字符串字面量类型 类与接口 →