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

2.4 TypeScript 中的展开运算符

在 TypeScript 中,展开运算符(...)是一个非常强大的语法工具。它可以将数组或对象的元素展开(spread)到另一个数组或对象中,从而实现快速复制、合并或修改数据结构。无论是处理数组、对象还是组合数据,扩展运算符都能让你的代码更加简洁和易读。

基本语法

...操作对象

示例一:创建数组的浅拷贝

使用扩展运算符,我们可以快速创建一个数组的浅层副本。

let oldArray: number[] = [1, 2, 3];
let newArray: number[] = [...oldArray];
console.log(newArray);

输出:

[1, 2, 3]

这是最简单、直观的用法之一,尤其在你不想修改原始数组时非常有用。

示例二:合并两个数组

扩展运算符也可以将多个数组合并成一个新数组,非常适合用于数据聚合处理。

let array1: number[] = [1, 2];
let array2: number[] = [3, 4];
let mergedArray: number[] = [...array1, ...array2];console.log(mergedArray);

输出:

[1, 2, 3, 4]

相比传统的 .concat() 方法,扩展运算符更加直观。

示例三:创建对象的浅拷贝

不仅仅是数组,对象也可以使用扩展运算符进行浅拷贝。

type objType = {name: string, age: number
}let oldObject: objType = { name: 'Author', age: 25 };
let newObject: objType = { ...oldObject };console.log(newObject);

输出:

{name: 'Author', age: 25
}

这种方式通常用于复制状态(如 React 的 state)或防止原始对象被直接修改。

示例四:修改对象的某个属性

我们还可以通过扩展运算符,在复制对象的同时修改其某个属性值。

type objType = {name: string, age: number
}let initialObject: objType = { name: 'Author', age: 23 };
let modifiedObject: objType = { ...initialObject, age: 24 };console.log(modifiedObject);

输出:

{    name: 'Author',     age: 24
}

请注意:如果扩展运算符后面出现了同名属性,后面的值将覆盖前面的。

总结

扩展运算符是 TypeScript 开发中不可或缺的一部分,它可以:

  • 快速复制数组或对象(浅拷贝)
  • 合并多个数组或对象
  • 在拷贝时轻松修改部分属性值

其简洁的语法提高了代码的可读性与可维护性,是现代 JavaScript / TypeScript 开发中提升开发效率的重要工具。

相关文章:

  • 打造苹果级视差滚动动画:现代网页滚动动画技术详解
  • STM32入门教程——LED闪烁LED流水灯蜂鸣器
  • 【清晰教程】查看和修改Git配置情况
  • Java中Redis面试题集锦(含过期策略详解)
  • 科普:Linux `su` 切换用户后出现 `$` 提示符,如何排查和解决?
  • 论文笔记: Urban Region Embedding via Multi-View Contrastive Prediction
  • leetcode付费题 353. 贪吃蛇游戏解题思路
  • 2025年- H61-Lc169--74.搜索二维矩阵(二分查找)--Java版
  • 【技能拾遗】——家庭宽带单线复用布线与配置(移动2025版)
  • 计算机视觉与深度学习 | 基于Matlab的门禁指纹识别与人脸识别双系统实现
  • 关于TongWeb数据源兼容mysql驱动的注意事项
  • CSS专题之层叠上下文
  • 【前端】SPA v.s. MPA
  • vue3 基本语法 父子关系
  • 设计模式——装饰器设计模式(结构型)
  • HiveSQL语法全解析与实战指南
  • 【大模型部署】mac m1本地部署 ChatGLM3-6B 超详细教程
  • 跟单业务和量化交易业务所涉及到的设计模式
  • 性能优化 - 理论篇:性能优化的七类技术手段
  • C++旅行预算规划 全国信息素养大赛复赛决赛 C++小学/初中组 算法创意实践挑战赛 内部集训模拟题详细解析
  • 的网站制作/网络培训总结
  • 怎样看一个网站的浏览量/企业网络营销成功案例
  • 济南手机网站开发/济南网站推广优化
  • 国外免备案虚拟主机/南宁seo排名首页
  • 温州瓯海建设局网站/国外免费网站域名服务器
  • 网站推广费计入什么科目/免费ip地址代理