好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

typeScript中数组类型定义及应用详解

1.定义数组

1.1?「类型 + 方括号」表示法

最简单的方法是使用「类型 + 方括号」来表示数组:

let list: number[] = [1, 1, 2, 3, 5];

?在这里,定义了一个名为list的数字类型的数组,数组里面的项中 不允许 出现其他的类型,否则会报错。

1.2?数组泛型

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

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

关于泛型,后续我会更新,可以在我的主页查看???

1.3?用接口表示数组

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

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

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

虽然接口也可以用来描述数组,但是我们一般不会这么做,因为这种方式比前两种方式复杂多了。

不过有一种情况例外,那就是它常用来表示 类数组 。

1.4?类数组

类数组(Array-like Object)不是数组类型。

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

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

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

事实上常用的类数组都有自己的接口定义,如? IArguments ,? NodeList ,? HTMLCollection ?等:

function sum() {
    let args: IArguments = arguments;
}

?其中? IArguments ?是 TypeScript 中定义好了的类型,它实际上就是:

interface IArguments {
    [index: number]: any;
    length: number;
    callee: Function;
}

关于内置对象,我后期会更新哟~

2. any 在数组中的应用?

一个比较常见的做法是,用? any ?表示数组中允许出现任意类型:

let list: any[] = [
    'xcatliu',
     25, 
    { 
        website: 'http://xcatliu测试数据' 
    }
];

总结

原文地址:https://blog.csdn.net/qq_57423665/article/details/130586450

查看更多关于typeScript中数组类型定义及应用详解的详细内容...

  阅读:74次