共计 字 • 阅读约 min

1. 类型 + []

最简单的方式定义数组

let arr: number[] = [1, 2, 3, 4, 5]

此时,数组中只允许 number 类型的值,并且后续修改数组的值也必须是 number 类型

// 只允许number
let arr: number[] = [1, 2, 3, 4, '5'] 
// ERROR: Type 'string' is not assignable to type 'number'.

// 修改数组值也必须是number
arr.push('123')
// Argument of type '"123"' is not assignable to parameter of type 'number'.

2. 数组泛型

使用数组泛型 Array<elemtyp> 表示数组

let arr: Array<number> = [1, 2, 3, 4, 5]

3. 接口表示数组

数组本质上是一个对象 Object,所以还可以使用对象的类型 -- 接口来表示数组

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

4. 类数组

interface INumberArray {
    [index: number] :number;
    length: number;
}

在 JavaScript 中,函数的参数集合 arguments 就是一个类数组,接口是:

function nums(){
    let args: {
        [index: number]: number;
        length: number;
	callee: Function;
    } = arguments;

我们自己定义了 arguments 接口类型,实际上这是多次一举的。TypeScript 中,常见类数组都已经定义好了,如:IArguments, NodeList, HTMLCollection,我们可以直接使用

function nums(){
    let args: IArguments = arguments
}

5. 任意属性数组

定义一个任意数组,使用 any 来表示。任意数组中任何类型值都是合法的

let arr: any[] = [1, '2', null, undefined, true, false, {name:'tom'}]


文章更新于: 2021-4-16 0:39:7