相对于列表是可以修改值的数据结构,元组是固定长度,不可修改值的数据结构。
例子
let x: [string, number];
x = ['a', 3];
x = ['a', 'b']; // Type 'string' is not assignable to type 'number'.(2322)
let x: [number, number];
x = [2, 3];
const angle1 = Math.atan2(...x); // 会通过,因为元组里确定了长度为2
x.pop();
const angle2 = Math.atan2(...x); // 还是会通过,但是此时因为x[1]为undefined,angle2为NaN
console.log(angle2);
// 类型会被限制为元组中每个类型的联合类型,只能添加number类型,boolean编译不通过
x.push(10);
x.push(true); // 错误
网友评论