22、数组,数组泛型,类数组,any在数组中的用处
1、数组常用的表达方式
// 数组的表达方式
let fib: number[] = [1,2,3]
表示这是一个纯number类型的数组,如果放入非number类型的,就会报错
2、用接口来表示数组
// 用接口来表示数组
interface NumberArr {[index: number]: number
}
let kl: NumberArr = [1,5,6,9]
3、类数组(Array-like Object)不是数组类型,比如 arguments
// 报错:Type 'IArguments' is missing the following properties from type 'number[]':
// pop, push, concat, join, and 24 more.
function sum() {let args: number[] =arguments
}
arguments 实际上是一个类数组,不能用普通的数组方式来描述,应该用接口
function sum() {let args: {[index: number]: number;length: number;callee: Function;} = arguments
}
// 常用的类数组都有自己的接口定义,如 IArguments, NodeList, HTMLCollection 等
function sum1() {let args: IArguments = arguments
}// 其实 IArguments 是ts中已经定义好的类型(内置对象),实际上就是
interface IArguments {[index: number]: any;length: number;callee: Function;
}
any在数组中的运用
let list: any[] = ['121212',4545, {ds: '4545'}]