🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] >[success] # 数组和元组 本章讲解 **数组** 与 **元祖** 的 >[success] ## 数组 在 **Typescript** 中,我们可以这样定义 **值都为 number 的数组** ,如下: **basic-types.ts** ~~~ // number 类型数组,数组项不可以出现非 number 类型之外类型的数据 let arrOfNumbers:number[] = [1, 2, 3] // 数组的方法对数组进行添加数据时也必须为 number 类型 arrOfNumbers.push(3) function test(){ // arguments 是一个类数组 console.log(arguments) // 不可以像下面这样写,因为类数组跟数组是不一样的,它缺少数组的方法 let arr:any[] = arguments } ~~~ 如果是 **数组对象** 的数据结构,可以使用 **接口(interface)** 来 **约束数组对象** ,代码如下: **basic-types.ts** ~~~ interface IDataType { name: string, age?: number } let data:IDataType[] = [ { name: '小明' }, { name: '小芳', age: 18 }, ] ~~~ >[success] ## 元祖 **数组** 将 **同一个类型的数据集合** 到一起,例如我们上面的例子,**数组的值 ,都是 number类型** 的,那么 **加入不同类型的数组的值** 怎么办,大家可能会想到用 **array:any[]** ,但是 **any[]** 就会 **丧失具体的类型** ,这不是我们想要的,我有很明确的目标,比如:**我数组的第 1 个值是 number,第二个值是 string** ,这时候我们可以使用 **元祖** ,**元祖合并了不同类型的对象** , **元祖** 起源于 **函数式编程** ,如果对 **python** 有过了解的人可能会有了解。 **basic-types.ts** ~~~ // 定义元祖 let user: [string, number] = ['viking', 20] // 可以向元祖中push数据 user.push('true') ~~~