# TypeSrcipt 元组

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 的语法校验不通过:

在这里插入图片描述
但是可以通过索引的方式,单独赋值一个元素:

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

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

在这里插入图片描述

元组添加元素

根据这个案例:

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

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

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

tuple.push("你好")

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

tuple.push(true)

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

在这里插入图片描述

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

posted @ 2023-12-26 13:47  我是ed  阅读(2)  评论(0编辑  收藏  举报