类型
第一种,可以在元素类型后面接上 [],表示由此类型元素组成的一个数组:
let list: number[] = [1, 2, 3];
// error 定义了数字类型出现字符串是不允许的
let a: number[] = [1, 2, 3, '1'];
//操作方法添加不同类型也是不允许的
let b: number[] = [1, 2, 3];
b.push('1');
// 定义任意类型数组
let c: any[] = [1, '2', 3];
数组泛型
第二种方式是使用数组泛型,Array<元素类型>:
let list: Array<number> = [1, 2, 3];
用接口表示数组
一般用来描述类数组
interface zl {
[index: number]: number
}
//表示:只要索引的类型是数字时,那么值的类型必须是数字。
let list: zl = [1, 2, 3]
多维数组
let list: number[][] = [[1], [2]]
arguments类数组
错误写法
function f(...args: any): void {
console.log(arguments);
let arr: number[] = arguments
}
f(1,2,3)
正确写法
function f(...args: any): void {
console.log(arguments);
// ts内置对象IArguments定义
let arr: IArguments = arguments
}
f(1,2,3)
看源码,IArguments是ts定义好的类型,它实际上是:
interface IArguments {
[index: number]: any;
length: number;
callee: Function;
}
any 在数组中的应用
数组中可以存在任意类型
let list: any[] = [1, '2', { a: 3 }]