数组一般由同种类型的值组成,但有时我们需要在单个变量中存储不同类型的值,这时候我们就可以使用元组。在 JavaScript 中是没有元组的,元组是 TypeScript 中特有的类型,其工作方式类似于数组。
元组最重要的特性是可以限制数组元素的个数和类型
,它特别适合用来实现多值返回。
元组类型的解构赋值
我们可以通过下标的方式来访问元组中的元素,当元组中的元素较多时,这种方式并不是那么便捷。
注意点:在解构赋值时,如果解构数组元素的个数是不能超过元组中元素的个数,否则也会出现错误
//可结构赋值
let employee: [number, string] = [1, "Semlinker"];
let [id, username] = employee;
console.log(`id: ${id}`)
元组类型的可选元素
let a:[x:number,y?:boolean] = [1]
元组类型的剩余元素
元组类型里最后一个元素可以是剩余元素,形式为 ...X
,这里 X
是数组类型。剩余元素代表元组类型是开放的,可以有零个或多个额外的元素。
type RestTupleType = [number, ...string[]];
只读的元组类型
我们可以为任何元组类型加上 readonly
关键字前缀,以使其成为只读元组。
在使用 readonly
关键字修饰元组类型之后,任何企图修改元组中元素的操作都会抛出异常
const point: readonly [number, number] = [10, 20];