菜单
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

TypeScript 元组 (Tuples)


类型化数组

元组 (tuple) 是一种类型化的 数组,它具有预定义的长度和每个索引的类型。

元组之所以很棒,是因为它们允许数组中的每个元素都是已知类型的。值。

要定义元组,请指定数组中每个元素的类型

示例

// 定义我们的元组
let ourTuple: [number, boolean, string];

// 正确初始化
ourTuple = [5, false, 'Coding God was here'];
自己动手试一试 »

正如您所见,我们有一个数字、一个布尔值和一个字符串。但是,如果我们尝试按错误的顺序设置它们会怎样?

示例

// 定义我们的元组
let ourTuple: [number, boolean, string];

// 错误初始化,会引发错误
ourTuple = [false, 'Coding God was mistaken', 5];
自己动手试一试 »

即使我们拥有 booleanstringnumber,它们在我们的元组中的顺序也很重要,并且会引发错误。


只读元组

最佳实践是使您的元组 readonly

元组仅对初始值具有强类型定义

示例

// 定义我们的元组
let ourTuple: [number, boolean, string];
// 正确初始化
ourTuple = [5, false, 'Coding God was here'];
// 对于索引 3+,我们的元组没有类型安全
ourTuple.push('Something new and wrong');
console.log(ourTuple);
自己动手试一试 »

您会看到新值元组仅对初始值具有强类型定义

示例

// 定义我们的只读元组
const ourReadonlyTuple: readonly [number, boolean, string] = [5, true, 'The Real Coding God'];
// 因为它是只读的,所以会引发错误。
ourReadonlyTuple.push('Coding God took a day off');
自己动手试一试 »

要了解有关 readonly 等访问修饰符的更多信息,请访问我们有关它们的章节:TypeScript 类

如果您以前使用过 React,那么您很可能接触过元组。

useState 返回一个由值和设置器函数组成的元组。

常见的例子是 const [firstName, setFirstName] = useState('Dylan')

由于这种结构,我们知道列表中的第一个值将是特定类型的值,在本例中是 string,第二个值是 function


w3schools CERTIFIED . 2022

获得认证!

完成 TypeScript 模块,做练习,参加考试,成为 W3Schools 认证!!

$45 报名

命名元组

命名元组允许我们为每个索引处的值提供上下文。

示例

const graph: [x: number, y: number] = [55.2, 41.3];

命名元组为我们的索引值代表的内容提供了更多上下文。


解构元组

由于元组是数组,因此我们也可以解构它们。

示例

const graph: [number, number] = [55.2, 41.3];
const [x, y] = graph;

要复习解构,请在此处查看:此处


TypeScript 练习

通过练习来测试自己

练习

元组的值类型顺序无关紧要


        

开始练习


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持