TypeScript 数组类型

JavaScript 语言一样,TypeScript 中也有数组类型。

数组指的是有序的元素序列,例如 [1, 2, 3] 这样的就是一个数组,1、2、3 就是数组中的元素,中括号[] 内可以由任意数量的元素。但是每个元素之间的类型必须相同,比如数组中的是数字类型就必须全部元素都是数组类型,像 [1, 2, '3'] 这样突然夹杂一个字符串类型是不被允许的。

数组是静态的,这意味着数组一旦初始化就无法调整大小。

声明和初始化数组

TypeScript 中声明和初始化数组也很简单,和声明数字类型和字符串类型的变量也差不多,只不过在指定数组类型时要在类型后面加上一个中括号 []

语法格式:

let array_name[:datatype] = [val1,val2…valn]

等号左边是声明数组,指定数组的类型,等号右边是给数组初始化赋值。如果声明数组时,没有给数组指定数据类型,则这个数组为 any 类型,在初始化时会根据数组中第一个元素的类型来推断数组的类型。

示例:

例如创建一个字符串类型的数组,数组中是《神雕侠侣》中的人物名称:

let character:string[] = ["杨过", "小龙女", "郭襄", "郭靖", "黄蓉", "李莫愁"];
console.log(character);

需要注意的是,当我们指定了一个数组的类型,那么这个数组中的元素也必须是这个类型,否则会导致报错。上述代码中,我们指定了数组为字符串类型,数组元素只能是字符串类型的。

示例:

例如在一个字符串类型数组中,如何有一个元素是数字类型的:

let character:string[] = ["杨过", "小龙女", "郭襄", "郭靖", "黄蓉", "李莫愁", 1];
console.log(character);

执行代码,提示我们编译失败,输出如下所示:

Type 'number' is not assignable to type 'string'.

除了使用中括号 [] 的方法来声明数组,我们还可以使用数组泛型来定义数组。

语法如下所示:

let array_name:Array<datatype>;
示例:

例如声明一个数字类型的数组:

let numArr:Array<number> = [1, 2, 3, 4, 5];  
console.log(numArr);
Array 对象

我们可以通过 Array 对象来创建数组。Array 对象的构造函数接受以下两种值:

  • 一个数值,表示数组的大小。
  • 初始化的数组列表,元素使用逗号分隔。
示例:

例如我们定义一个大小为 4 的数组,可以使用 for 循环向数组中赋值:

let numArr:number[] = new Array(4);  //表示数组的大小为4

for(let i = 0; i < numArr.length; i++) {
    
   numArr[i] = i;
}
console.log(numArr);

编译成 JavaScript 代码:

var numArr = new Array(4);//表示数组的大小为4
for (var i = 0; i < numArr.length; i++) {
   
    numArr[i] = i;
}
console.log(numArr);

输出:

[ 0, 1, 2, 3 ]

或者可以直接在 Array 对象的构造函数中初始化数组列表:

let myName:string[] = new Array("xkd","summer","Iven") 
console.log(myName);

编译成 JavaScript 代码:

var myName = new Array("xkd", "summer", "Iven");
console.log(myName);

输出:

[ 'xkd', 'summer', 'Iven' ]
访问数组元素

我们来看下面这个数组:

["杨过", "小龙女", "郭襄", "郭靖", "黄蓉", "李莫愁"]

在这个数组中,第一个元素 “杨过” 的索引值为 0,第二个元素 “小龙女” 的索引值为 1, 第三个元素 “郭襄” 的索引值为 2,后面的依次类推。

那么知道数组中元素的索引值有什么作用呢,我们可以通过对应的索引来访问数组元素。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值