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;
}