# 元组
# 基本用法
数组合并了相同类型的对象, 而元组(Tuple)合并了不同类型的对象.
let tom: [string, number] = ["Tom", 25];
1
定义元组类型必须与实际数组的每项类型一一对应.
let tom: [string, number] = ["Tom", 25, 12]; // X
let tom: [string, number] = ["Tom"]; // X
let tom: [string, number] = [25, "Tom"]; // X
1
2
3
2
3
# 访问元组里的 item
tom[0]; // 'Tom'
1
# 赋值
tom[1] = 24;
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]'.
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'.
1
2
3
4
5
6
2
3
4
5
6
← 类型别名 & 字符串字面量类型 类与接口 →