当前位置: 首页 > news >正文

web:ts元组

简介

元组(Tuple)是 TypeScript 中一个非常重要的概念,特殊的数组,它允许在数组中存储不同类型的元素,与普通数组不同,元组中的每个元素都有明确的类型和位置。元组可以在很多场景下用于表示固定长度、且各元素类型已知的数据结构。

语法格式

let tuple: [类型1, 类型2, 类型3, ...];

用法示例

基础用法

// 声明元组类型
let person: [string, number]; // 初始化(必须完全匹配类型和长度)
person = ["Alice", 30];  // ✅ 正确
person = [30, "Alice"];  // ❌ 错误:类型顺序不匹配
person = ["Bob"];        // ❌ 错误:长度不足

可选元素(?)

type Color = [number, number, number, number?]; // 最后一个元素可选
const rgba: Color = [255, 0, 0];     // ✅ 允许省略第4个元素(alpha)
const rgba2: Color = [255, 0, 0, 1]; // ✅

剩余元素(Rest Elements)

type StringNumberPairs = [string, ...number[]];
const data: StringNumberPairs = ["ID", 1, 2, 3]; // ✅ 首个元素是string,其余是number

只读元组(Readonly)

const point: readonly [number, number] = [10, 20];
point[0] = 5; // ❌ 错误:无法修改只读元组

命名标签(TypeScript 4.0+)

增强可读性:

type HttpStatus = [status: number, message: string];
const notFound: HttpStatus = [404, "Not Found"];

元组 vs 数组

特性​

​元组​

​数组​

元素类型

各位置类型独立

所有元素类型相同

长度

固定长度(除非使用...

动态长度

类型推断

精确到具体位置类型

统一为单一类型(如 number[]

注意事项

  • ​越界访问​​:访问超出声明长度的元素会报错(除非使用 Rest 语法)。

  • ​可变操作​​:即使元组被声明为只读,仍可用 as断言修改(需谨慎):

const mutable = [10, 20] as [number, number];
mutable.push(30); // ⚠️ 运行时允许但破坏类型安全!

http://www.dtcms.com/a/315026.html

相关文章:

  • 【RH124知识点问答题】第8章 监控和管理 Linux 进程
  • Bean的生命周期和循环依赖问题的解决
  • 防火墙认证用户部署
  • 开发规范(一)移动端
  • 多线程(一)
  • 【C#】操作Execl和Word文件-1
  • 子词分词器(Byte Pair Encoding + WordPiece)
  • 如何给Word和WPS文档添加密码或取消密码
  • 【Java】使用FreeMarker来实现Word自定义导出
  • 反转字符串中的元音字母:Swift 双指针一步到位
  • EXPLAIN工具:查询执行计划分析与索引诊断
  • 【数据结构】排序(sort) -- 插入排序
  • 如何设置端口映射?防火墙/路由器/纯软件工具多种常用方案步骤,确保任意内网ip端口映射公网访问到
  • 《汇编语言:基于X86处理器》第11章 复习题和练习
  • RocketMQ与Kafka 消费者组的‌重平衡操作消息顺序性对比
  • Hadoop MapReduce 3.3.4 讲解~
  • Linux系统编程-文件操作(黑马笔记)
  • 基于Springboot+Mybatis+thymeleaf的个人博客系统的设计与实现
  • EXCEL删除数据透视表
  • 洛谷 P3373 【模板】线段树 2- 普及+/提高
  • C# 类型
  • 基于PSO-NSGAIII混合优化的生产调度算法matlab仿真,输出甘特图,对比PSO和NSGAIII
  • traefik网关鉴权中间件转发multipart/form-data请求的multipart: NextPart: EOF问题
  • 09 Linux基础(8.4)
  • (一)vue3项目初始化(create-vue)
  • 构建属于自己的第一个 MCP 服务器:初学者教程
  • web:ts的字符串string和String
  • Flutter简单讲解
  • ctfshow:pwn85(高级ROP 64 位 Partial-RELRO)、pwn141
  • 内网应用如何实现外网访问?常见方案和简单便捷通用方法步骤