TypeScript:元组

元组(Tuple)的各元素的类型不必相同,但赋值时元素类型的顺序必须与元组定义时的类型顺序一致,且元素数量也必须一致:

let data: [string, number] = ['hello', 2022];//正确
let data: [string, number] = [ 2022,'hello'];//元素类型不一致,错误
let data: [string, number] = ['hello'];//元素数量不一致,错误

可以通过索引访问元组元素,可以通过push向元组中增加元素,但不可以访问定义元组时不存在的索引,但可以通过for遍历到所有元素,这是一个非常奇怪的设计,建议不要使用push方法

let data: [string, number] = ['hello', 2022];//正确
console.log(data[0]);//输出'hello'
data[0] = 'hi';
console.log(data[0]);//输出'hi'
data.push('good luck');
console.log(data);//输出[ 'hi', 2022, 'good luck' ]
console.log(data.length);//输出3
console.log(data[2]);//输出error TS2493: Tuple type '[string, number]' of length '2' has no element at index '2'
for(let i of data)
{
	console.log(i);//依次输出hi 2022 good luck
}

可以定义可选元素,可选元素即使没有赋值,也可以通过索引读取及设置

let hello: [string, number?, string?] = ['hello', 2022]
console.log(hello);//输出[ 'hello', 2022 ]
console.log(hello[2]);//输出undefined
console.log(hello.length);//输出2
hello[2] = 'good luck';
console.log(hello);//输出[ 'hello', 2022, 'good luck' ]
console.log(hello.length);//输出3

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风静如云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值