(ts-02)元组是什么?

相对于列表是可以修改值的数据结构,元组是固定长度,不可修改值的数据结构。

例子

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); // 错误
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容