模式切换
元祖
在 TypeScript 中,元组(Tuple)是一种特殊类型的数组,它允许你指定数组中每个元素的类型。元组在函数返回多个值或当你想要表示具有不同数据类型的序列时非常有用。
我们知道数组中元素的数据类型都一般是相同的(any[] 类型的数组可以不同),如果存储的元素数据类型不同,则需要使用元组。 元组提供了一种灵活的方式来处理具有不同类型元素的数据结构,而不需要创建一个新的类或者接口。元组中允许存储不同类型的元素,元组可以作为参数传递给函数。
在下面的示例中,我们定义了一个元组 person,它包含两个元素:一个字符串和一个数字。然后,我们初始化这个元组并访问其元素。尝试给元组赋一个不同类型的值会导致 TypeScript 报错。此外,我们还展示了如何使用解构赋值来访问元组中的值。
函数 getPersonDetails 返回一个元组,包含一个人的名字和年龄。
最后,我们还展示了元组中的可选元素。通过在元素类型后面加上 ?,我们可以表示该元素是可选的,即它可以存在也可以不存在。
typescript
// 定义一个元组类型
let person: [string, number];
// 初始化元组
person = ['Alice', 25];
// 访问元组元素
console.log(person[0]); // 输出 "Alice"
console.log(person[1]); // 输出 25
// 如果尝试给元组赋一个不同类型的值,TypeScript 会报错
// person = [123, 'Bob']; // 错误:类型不匹配
// 可以使用解构赋值来访问元组中的值
let [name, age] = person;
console.log(name); // 输出 "Alice"
console.log(age); // 输出 25
// 函数可以返回元组
function getPersonDetails(): [string, number] {
return ['Bob', 30];
}
let details = getPersonDetails();
console.log(details[0]); // 输出 "Bob"
console.log(details[1]); // 输出 30
// 元组也可以有可选元素
let optionalPerson: [string, number?];
optionalPerson = ['Charlie']; // 可以只提供一个元素