# 数组的类型
在 TypeScript 中,数组类型有多种定义方式,比较灵活。
# 「类型 + 方括号」表示法
第一种,可以在元素类型后面接上 [],表示由此类型元素组成的一个数组:
let list: number[] = [1, 2, 3];
注意在 TypeScript 的数组中不允许出现其他的类型
let list: number[] = ["1", 2, 3];
// Type 'string' is not assignable to type 'number'.
let list: number[] = [1, 2, 3];
list.push("4");
// Argument of type 'string' is not assignable to parameter of type 'number'.
# 数组泛型
第二种方式是使用数组泛型,Array<元素类型>
:
let list: Array<number> = [1, 2, 3];
# 用接口表示数组
此外,接口也可以用来描述数组,比如这样
interface NumberArray {
[index: number]: number;
}
let fibonacci: NumberArray = [1, 1, 2, 3, 5];
NumberArray 表示:只要索引的类型是数字时,那么值的类型必须是数字。
这种方式常用来表示类数组
# any
如果一个数组的成员的类型是动态的,这时就轮到 any 上场了。
用 any 表示数组中允许出现任意类型,就像一个普通的 JavaScript 数组一样:
let list: any[] = ["xcatliu", 25, { website: "http://xcatliu.com" }];