数组定义
所有成员的类型必须相同,但是成员数量是不确定的
- 常规方式:
(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,反之不行