TypeScript - 元组
创建于 2024-12-03 /
28
字体:
[默认]
[大]
[更大]
有时,可能需要存储不同类型的值的集合。 数组不能用于此目的。 TypeScript 为我们提供了一种称为元组的数据类型,有助于实现这样的目的。
它代表一个异构的值集合。 换句话说,元组能够存储不同类型的多个字段。 元组也可以作为参数传递给函数。
语法
var tuple_name = [value1,value2,value3,…value n]
例如
var mytuple = [10,"Hello"];
您还可以在 Typescript 中声明一个空元组并选择稍后对其进行初始化。
var mytuple = []; mytuple[0] = 120 mytuple[1] = 234
访问元组中的值
元组值单独称为项目。 元组是基于索引的。 这意味着可以使用相应的数字索引来访问元组中的项目。 元组项的索引从 0 开始,一直延伸到 n-1(其中 n 是元组的大小)。
语法
tuple_name[index]
示例:简单元组
var mytuple = [10,"Hello"]; //create a tuple console.log(mytuple[0]) console.log(mytuple[1])
在上面的示例中,声明了一个元组 mytuple。 元组分别包含数字和字符串类型的值。
编译时,它将在 JavaScript 中生成相同的代码。
其输出如下 −
10 Hello
示例:空元组
var tup = [] tup[0] = 12 tup[1] = 23 console.log(tup[0]) console.log(tup[1])
编译时,它将在 JavaScript 中生成相同的代码。
其输出如下 −
12 23
元组操作
TypeScript 中的元组支持各种操作,例如推送新项目、从元组中删除项目等。
示例
var mytuple = [10,"Hello","World","typeScript"]; console.log("Items before push "+mytuple.length) // returns the tuple size mytuple.push(12) // append value to the tuple console.log("Items after push "+mytuple.length) console.log("Items before pop "+mytuple.length) console.log(mytuple.pop()+" popped from the tuple") // removes and returns the last item console.log("Items after pop "+mytuple.length)
push() 将一个项目附加到元组
pop() 删除并返回元组中的最后一个值
编译时,它将在 JavaScript 中生成相同的代码。
上述代码的输出结果如下 −
Items before push 4 Items after push 5 Items before pop 5 12 popped from the tuple Items after pop 4
更新元组
元组是可变的,这意味着您可以更新或更改元组元素的值。
示例
var mytuple = [10,"Hello","World","typeScript"]; //create a tuple console.log("Tuple value at index 0 "+mytuple[0]) //update a tuple element mytuple[0] = 121 console.log("Tuple value at index 0 changed to "+mytuple[0])
编译时,它将在 JavaScript 中生成相同的代码。
上述代码的输出结果如下 −
Tuple value at index 0 10 Tuple value at index 0 changed to 121
解构元组
解构是指破坏实体的结构。 在元组上下文中使用时,TypeScript 支持解构。
示例
var a =[10,"hello"] var [b,c] = a console.log( b ) console.log( c )
编译时,它将生成以下 JavaScript 代码。
//Generated by typescript 1.8.10 var a = [10, "hello"]; var b = a[0], c = a[1]; console.log(b); console.log(c);
其输出如下 −
10 hello
0 人点赞过