TypeSrcipt 元组

技术资料:https://ts.xcatliu.com/advanced/tuple.html

数组合并了相同类型的对象,而元组(Tuple)合并了不同类型的对象。元组起源于函数编程语言(如 F#),这些语言中会频繁使用元组。

案例区分

// 数组 合并了相同类型的对象
let arr: number[] = [1, 2, 3, 4, 5];

// 元组 合并了不同类型的对象
let tuple: [string, number] = ['我是ed.', 25];

注意:当直接对元组类型的变量进行初始化或者赋值的时候,需要提供所有元组类型中指定的项。

元组初始化

直接对元组类型的变量进行初始化或者赋值的时候,需要提供所有元组类型中指定的项。

// 元组
let tuple: [string, number] = ['hello', 123];

如果只初始化一个数据值,则会报错:

let tuple: [string, number]
tuple = ['我是ed.']

声明了两个值,但是只初始化了一个值,此时会触发 ts 的语法校验不通过:

# TypeSrcipt 元组_赋值


但是可以通过索引的方式,单独赋值一个元素:

let tuple: [string, number]
tuple[0] = '我是ed.'

这样子是不会触发语法校验错误:

# TypeSrcipt 元组_初始化_02

元组添加元素

根据这个案例:

let tuple: [string, number] = ['我是ed.', 25];

当元组添加内容的时候,需要是 number 或者是 string 类型。因为在元组定义的时候,元组的声明类型采用的是联合声明类型,所以结合上面的案例,只能 push 数值类型和字符串类型。

// 元组
let tuple: [string, number] = ['hello', 123];

tuple.push("你好")

如果 push 越界的类型,则会报错:

tuple.push(true)

没有定义 Boolean 类型,此时会报错:

# TypeSrcipt 元组_赋值_03

好的,上面就是对元组的基本了解。

【版权声明】本博文著作权归作者所有,任何形式的转载都请联系作者获取授权并注明出处!
【重要说明】博文仅作为本人的学习记录,论点和观点仅代表个人而不代表技术的真理,目的是自我学习和有幸成为可以向他人分享的经验,因此有错误会虚心接受改正,但不代表此刻博文无误!
【Gitee地址】我是𝒆𝒅. :https://gitee.com/wjw1014