有个两种方法,一种是成员类型后面接数组字面量,一种是使用数组泛型

成员类型后面接数组字面量

举个例子

  1. let arr: number[] = [1, 2, 3];
  2. arr.push('3')

上面的数组规定了成员只能是数字,因此push一个字符串会报错

当然也可以定义接口组成的数组

  1. let arr: { id: number; name: string }[] = [{ id: 1, name: "小明" }];

数组泛型

  1. let arr: Array<{ id: number; name: string }> = [{ id: 1, name: "小明" }];

接口表示数组

因为js中数组也是对象,因此ts中也可以用接口来表示一个数组

  1. interface arr {
  2. [index: number]: number;
  3. }
  4. let arr1: arr = [1, 2, 3];

类数组和内置对象

在js中经常碰到一些类数组的数据,例如一组li组成的nodelist,又或者是htmlcollection,又或者是函数的参数组成的arguments
他们严格地说不是数组,因为他们混合了一些其他的属性,但是在js中也可以称为数组,因为js中的数组就是对象,因此在ts中也可以使用接口定义成员的数组来为这些类数组定义类型

  1. function fn() {
  2. let params: number[] = arguments;//报错,因为其中不完全是数值
  3. }
  4. function fn() {
  5. let params: IArguments = arguments;//内置对象
  6. }
  7. //或者是使用any
  8. function fn() {
  9. let params: any = arguments;//内置对象
  10. }

ts中的内置对象

主要包括了js中的内置对象,包括但不限于RegExp,Date,Boolean,Error等,还有DOM和BOM的内置对象例如NodeList、HTMLCollection、HTMLElement等。
另外,还有一些ts自定的内置对象,例如IArguments