TypeScript-入门教程(4)

150 阅读1分钟

1.数组的类型

类型 + 方括号」表示法

let numArr: number[] = [1, 5, 2, 7, 5];
由于我们规定了数组内的项为number类型的,所有数组的项中不允许出现其他的类型:

let numArr: number[] = [1, '5', 2, 7, 5];
// Type 'string' is not assignable to type 'number'

同样的使用数组的增改的方法也不能添加或者修改非number类型的项
let numArr: number[] = [1, 1, 2, 3, 5];
numArr.push('8');
// Argument of type '"8"' is not assignable to parameter of type 'number'

2.数组泛型

我们也可以使用数组泛型(Array Generic) Array<elemType> 来表示数组:

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

3.用接口表示数组

接口也可以用来描述数组:

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

NumberArray表示:只要索引的类型是数字时,那么值的类型必须是数字

4.类数组

定义一个类数组,不能用普通的数组的方式来描述,而应该用接口

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

在这个例子中,我们除了约束当索引的类型是数字时,值的类型必须是数字之外,也约束了它还有 length 和 callee 两个属性。

或者是

interface IArguments {
    [index: number]: any;
    length: number;
    callee: Function;
}
function sum() {
    let args: IArguments = arguments;
}