数组与元组:TypeScript 的基础

article/2025/6/25 14:33:15

🤍 前端开发工程师、技术日更博主、已过CET6
🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1
🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》
🍚 蓝桥云课签约作者、上架课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》

在 TypeScript 中,数组和元组是两种常用的数据结构,它们用于存储和组织多个值。下面详细介绍它们的使用方法和区别。

在这里插入图片描述

数组 (Array)

数组是一种有序的值集合,可以包含零个或多个相同类型的元素。

声明数组

let numbers: number[] = [1, 2, 3, 4, 5];
let strings: string[] = ['a', 'b', 'c'];

多类型数组

TypeScript 支持数组中包含多种类型的元素,但通常推荐使用联合类型来明确元素类型。

let mixed: (number | string)[] = [1, 'a', 2, 'b'];

数组方法

TypeScript 数组可以使用所有 JavaScript 数组方法,如 push, pop, shift, unshift, splice 等。

let fruits: string[] = ['apple', 'banana'];
fruits.push('orange'); // ['apple', 'banana', 'orange']

只读数组

使用 readonly 修饰符可以创建只读数组,防止数组被修改。

let readonlyFruits: readonly string[] = ['apple', 'banana'];
// readonlyFruits.push('orange'); // Error: Property 'push' does not exist on type 'readonly string[]'.

元组 (Tuple)

元组是一种特殊的数组,它允许你定义元素的类型和位置。元组的长度是固定的,每个位置的元素类型也是固定的。

声明元组

let tuple: [string, number, boolean] = ['hello', 42, true];

元组的优势

元组允许你精确地控制每个位置的元素类型,这在某些情况下非常有用,例如函数返回多个值时。

function getPersonInfo(): [string, number] {
return ['Alice', 30];
}let [name, age] = getPersonInfo(); // 解构赋值

元组的扩展

元组可以包含可选元素和剩余元素(rest elements)。

// 可选元素
let tupleWithOptional: [string, number?, boolean?] = ['hello'];// 剩余元素
let tupleWithRest: [string, ...number[]] = ['start', 1, 2, 3];

数组与元组的区别

  • 长度:数组的长度是动态的,可以随时添加或删除元素;元组的长度是固定的。
  • 类型:数组中的元素类型可以相同也可以不同(使用联合类型);元组中的每个位置的元素类型是固定的。
  • 用途:数组适用于存储同类型的元素集合;元组适用于需要精确控制每个位置元素类型和数量的场景。

通过合理使用数组和元组,可以更好地组织和处理数据,提高代码的可读性和可维护性。


http://www.hkcw.cn/article/YHMSnTCajt.shtml

相关文章

Transformer核心技术深度解析:多头注意力机制与架构精粹

一、多头注意力:模型理解的「多棱镜」 核心思想:并行化特征空间探索 传统注意力的局限:单一注意力机制如同单眼观察世界,只能捕捉单一维度的关联 多头机制的本质:为模型配备多组「认知透镜」,同时从不同子…

【C语言入门级教学】assert断⾔和指针的使用

文章目录 1.assert断⾔2.指针的使⽤和传址调⽤2.1 strlen的模拟实现2.2 传值调⽤和传址调⽤ 1.assert断⾔ assert.h 头⽂件定义了宏 assert() ,⽤于在运⾏时确保程序符合指定条件,如果不符合,就报错终⽌运⾏。这个宏常常被称为“断⾔”。 a…

拓扑排序 + 深度优先搜索解决问题

如大家所知,使用深度优先搜索实现拓扑排序的总体思想是:对于一个特定节点,如果该节点的所有相邻节点都已经搜索完成,则该节点也会变成已经搜索完成的节点,在拓扑排序中,该节点位于其所有相邻节点的前面。一…

cnn训练并用grad-cam可视化

使用大米图片训练集,包含五个文件,分别是5种品牌的大米,使用cnn进行分类训练。 -Arborio/ :代表 Arborio 品种的大米图像数据,根据 Rice_Citation_Request.txt 文件可知,该数据集中包含 Arborio 品种的大米…

放弃 tsc+nodemon 使用 tsx 构建Node 环境下 TypeScript + ESM 开发环境搭建指南

放弃 tscnodemon 使用 tsx 构建Node 环境下 TypeScript ESM 开发环境搭建指南 目标 在 node 环境下构建 typescript esmodule模块 开发环境,这样可以使用 typescript 提供的类型安全和类型提示便利性。 我们要实现下面的效果 文件目录 src/index.ts 注意是 esmod…

Geogebra中导出3D Graphics窗口

导出没有特别的自定义设置,默认的第一个窗口是Graphics, 还有Graphics 2和3D Graphics ,优先顺序依次递减。如果要想导出的是3D Graphics, 需要确保关闭另外两个窗口。 这个是视频转换: 下面是直接导出: 带渲染效果的,其实是Al…

LeetCode 高频 SQL 50 题(基础版) 之 【高级查询和连接】· 上

题目:1731. 每位经理的下属员工数量 题解: select employee_id,name,reports_count,average_age from Employees t1,(select reports_to,count(*) reports_count,round(avg(age)) average_agefrom Employeeswhere reports_to is not nullgroup by repor…

韩国大选三强对决 李在明领跑 民众意愿强烈

韩国第21届总统选举于6月3日举行,预计4日凌晨揭晓结果。当选总统将立即就职,任期5年。当地时间2025年5月30日,韩国京畿道果川市中央选举管理委员会选举综合情况室的工作人员正在检查境内提前投票箱的存放地点监控视频。从去年12月3日的风波到今年4月4日前总统尹锡悦被罢免,…

48岁网红“大刚”疑酒精中毒离世 民间艺人突陨落

6月1日,短视频账号“大刚演艺传媒”发布讣告,宣布景旭刚因病于当天上午不幸离世,享年48岁。定于6月4日出殡。许多网友在评论区对景旭刚的离世表达了哀思,并称赞他多才多艺。次日,景旭刚的妻子确认了这一消息,称丈夫因饮酒过量导致酒精中毒去世。景旭刚的儿子也在朋友圈发…

泽连斯基:蛛网行动准备超过一年半 精心策划载入史册

乌克兰在与俄罗斯举行第二轮谈判前夕,发动了“蛛网”行动,袭击了俄罗斯多地。据报道,行动中的无人机通过货柜车偷运进入俄方领土。乌克兰总统泽连斯基表示,这次行动经过了一年半以上的准备,并且精心策划。他称赞此次行动堪称精彩,认为乌军的行动无疑将载入史册。乌克兰安…

女子被逼复婚又屡遭家暴,7岁儿子哭求爸爸别打了!

女子被逼复婚又屡遭家暴。重庆市的谭女士在自家水果店中,公然遭受了丈夫的家庭暴力,导致身上多处受伤。谭女士表示,她一定要站出来,用实际行动,坚决向家庭暴力说“不”!重庆的谭女士告诉记者她又被丈夫家暴打成闭合型颅脑损伤,他打她的原因让人不可思议,竟是因为她带孩…

【深度学习】实验四 卷积神经网络CNN

实验四 卷积神经网络CNN 一、实验学时: 2学时 二、实验目的 掌握卷积神经网络CNN的基本结构;掌握数据预处理、模型构建、训练与调参;探索CNN在MNIST数据集中的性能表现; 三、实验内容 实现深度神经网络CNN。 四、主要实验步…

通俗理解“高内聚,低耦合”

在软件开发中,良好的架构设计能够大幅降低系统的复杂度,提高代码的可维护性。而“高内聚,低耦合”正是指导我们如何合理组织代码的核心原则之一。本文将从通俗的角度解释这一概念,并结合实际案例说明其重要性。 一,高…

Unity + HybirdCLR热更新 入门篇

官方文档 HybridCLR | HybridCLRhttps://hybridclr.doc.code-philosophy.com/docs/intro 什么是HybirdCLR? HybridCLR(原名 huatuo)是一个专为 Unity 项目设计的C#热更新解决方案,它通过扩展 IL2CPP 运行时,使其支持动态加载和…

Python基础:人生重开模拟器(小游戏)

引言 手把手带你速通Python 实现人生重开模拟器(小游戏)的意义:增强对条件语句,循环语句的运用,增加写代码的乐趣。 一、 游戏介绍 网页版的人生重开模拟器: 人生重开模拟器-重来-重启 (aizhancloud.cn) …

【Elasticsearch】ILM(Index Lifecycle Management)策略详解

ILM(Index Lifecycle Management)策略详解 1.什么是 ILM 策略?2.ILM 解决的核心业务问题3.ILM 生命周期阶段3.1 Hot(热阶段)3.2 Warm(温阶段)3.3 Cold(冷阶段)3.4 Delete…

【存储基础】数据存储基础知识

文章目录 1. 概述:数据存储基础知识2. 存储物理介质3. 数据存储的分类3.1按存储架构分类DAS 直连存储SAN 存储区域网络NAS 网络附加存储分布式存储四种架构之间的核心区别 3.2 按数据模型分类块存储文件存储对象存储 4. 数据存储的关键技术方案和核心机制冗余与容错…

【Part 3 Unity VR眼镜端播放器开发与优化】第二节|VR眼镜端的开发适配与交互设计

文章目录 《VR 360全景视频开发》专栏Part 3|Unity VR眼镜端播放器开发与优化第一节|基于Unity的360全景视频播放实现方案第二节|VR眼镜端的开发适配与交互设计一、Unity XR开发环境与设备适配1.1 启用XR Plugin Management1.2 配置OpenXR与平…

小米YU7还有5款颜色即将发布 更多色彩敬请期待

6月1日,小米在5月22日的发布会上公布了YU7的四款颜色:钛金属色、宝石绿、熔岩橙和寒武岩灰。官方透露,除了这四款已发布的颜色外,还有五款新颜色即将推出,每一种都设计得非常经典。回顾之前的小米SU7,在刚推出时就提供了9种颜色选择,涵盖了跑车色系、时尚色系、豪华色系…

老人被甩客执法人员送其回家 温情护送获赠枇杷

日前,重庆交通执法总队轨道交通支队三大队在重庆西站巡查时发现一名老人误乘“黑车”。考虑到她年近九旬行动不便,执法人员开车将其安全护送回家。老人感激地拿出自己种的枇杷送给执法人员以示感谢。5月27日上午,执法人员在巡查过程中发现一辆渝A籍车辆正在下客,随即上前检…