有个两种方法,一种是成员类型后面接数组字面量,一种是使用数组泛型
成员类型后面接数组字面量
举个例子
let arr: number[] = [1, 2, 3];arr.push('3')
上面的数组规定了成员只能是数字,因此push一个字符串会报错
当然也可以定义接口组成的数组
let arr: { id: number; name: string }[] = [{ id: 1, name: "小明" }];
数组泛型
let arr: Array<{ id: number; name: string }> = [{ id: 1, name: "小明" }];
接口表示数组
因为js中数组也是对象,因此ts中也可以用接口来表示一个数组
interface arr {[index: number]: number;}let arr1: arr = [1, 2, 3];
类数组和内置对象
在js中经常碰到一些类数组的数据,例如一组li组成的nodelist,又或者是htmlcollection,又或者是函数的参数组成的arguments
他们严格地说不是数组,因为他们混合了一些其他的属性,但是在js中也可以称为数组,因为js中的数组就是对象,因此在ts中也可以使用接口定义成员的数组来为这些类数组定义类型
function fn() {let params: number[] = arguments;//报错,因为其中不完全是数值}function fn() {let params: IArguments = arguments;//内置对象}//或者是使用anyfunction fn() {let params: any = arguments;//内置对象}
ts中的内置对象
主要包括了js中的内置对象,包括但不限于RegExp,Date,Boolean,Error等,还有DOM和BOM的内置对象例如NodeList、HTMLCollection、HTMLElement等。
另外,还有一些ts自定的内置对象,例如IArguments
