数组定义

所有成员的类型必须相同,但是成员数量是不确定的

  • 常规方式:(number | string)[]
  • 范型方式:Array<number | string>

只读数组

表示数组不能被改变:ReadonlyArray<string>,更简短的写法:readonly string[]

Array 可以赋值给 ReadonlyArray,反之不行

多维数组

// 1.常规方式
let matrix: number[][]
 
// 2.泛型方式
let matrix: Array<Array<number>>

元组类型(Tuple Types)

表示成员类型可以自由设置的数组,即数组的各个成员的类型可以不同,明确知道数组包含多少个元素,并且每个位置元素的类型都明确知道的时候,就适合使用元组类型

type StringNumberPair = [string, number]

表示一个数组,索引 0 的值的类型是 string,索引 1 的值的类型是 number

可选

元组中也可以有可选类型,会影响类型的 length:type Either2dOr3d = [number, number, number?]

不限数量

也可以使用扩展运算符语法,但必须是 array/tuple 类型:type StringNumberBooleans = [string, number, ...boolean[]]

只读元组

元组也可以是只读的,不允许修改:type t = readonly [number, string]

给一个数组字面量 const 断言,也会被推断为 readonly 元组类型:let point = [1, 2] as const

tuple 可以赋值给 readonly tuple,反之不行