TypeScript 的数组类型
JavaScript 数组在 TypeScript 里面分成两种类型,分别是数组(array)和元组(tuple)。
本章介绍数组,下一章介绍元组。
简介
TypeScript 数组有一个根本特征:所有成员的类型必须相同,但是成员数量是不确定的,可以是无限数量的成员,也可以是零成员。
数组的类型有两种写法。第一种写法是在数组成员的类型后面,加上一对方括号。
let arr:number[] = [1, 2, 3];
上面示例中,数组arr
的类型是number[]
,其中number
表示数组成员类型是number
。
如果数组成员的类型比较复杂,可以写在圆括号里面。
let arr:(number|string)[];
上面示例中,数组arr
的成员类型是number|string
。
这个例子里面的圆括号是必须的,否则因为竖杠|
的优先级低于[]
,TypeScript 会把number|string[]
理解成number
和string[]
的联合类型。
如果数组成员可以是任意类型,写成any[]
。当然,这种写法是应该避免的。
let arr:any[];
数组类型的第二种写法是使用 TypeScript 内置的 Array 接口。
let arr:Array<number> = [1, 2, 3];
上面示例中,数组arr
的类型是Array<number>
,其中number
表示成员类型是number
。
这种写法对于成员类型比较复杂的数组,代码可读性会稍微好一些。
let arr:Array<number|string>;