欢迎光临
我们一直在努力

TypeScript 核心技巧:「...rest 剩余运算符」完全总结(核心技巧 + 全场景)

你想系统掌握 TypeScript 里的 …rest(剩余运算符),包括它的语法、类型约束、所有使用场景、与展开运算符的区别和避坑点,这份总结会覆盖 rest 的全部核心用法 + TS 专属技巧,内容完整且实用,学完就能直接落地。


✅ 一、基础认知:什么是 rest 剩余运算符(…)

1. 核心定义

…变量名 就是剩余运算符(Rest Operator),核心作用是:将「多个零散的元素 / 参数」收集并聚合为一个「数组 / 元组 / 对象」,本质是「聚合 / 收集」。

2. 关键前置:rest ≠ 展开(spread),分清「聚合」vs「打散」

很多人会把 … 搞混,核心区别一句话分清,这是最基础也最重要的点:

  • 剩余运算符(Rest):…变量名 → 聚合 / 收集:把「多个独立内容」变成「一个集合(数组 / 对象)」,是「多 → 一」的过程;
  • 展开运算符(Spread):…集合 → 打散 / 平铺:把「一个集合(数组 / 对象)」变成「多个独立内容」,是「一 → 多」的过程;

语法区分技巧:… 后面跟「变量名」就是 rest,… 后面跟「具体的集合(数组 / 对象)」就是 spread。

ts

// rest 剩余:聚合,多→一
const [a, …restArr] = [1,2,3,4]; // restArr = [2,3,4]

// spread 展开:打散,一→多
const newArr = [0, …restArr]; // newArr = [0,2,3,4]


✅ 二、场景一:函数中的剩余参数(最常用,TS 核心重点)

2.1 基础用法:函数形参的 rest

当函数需要接收不确定数量的参数、任意数量的参数时,用 …rest 定义剩余参数,它会把「函数调用时传入的、未被形参匹配的参数」全部收集为一个数组。

ts

// 语法:函数形参中,…rest放在最后
function sum(base: number, …nums: number[]) {
return base + nums.reduce((a, b) => a + b, 0);
}

sum(10, 1, 2); // 13 → nums = [1,2]
sum(10, 1, 2, 3, 4); // 20 → nums = [1,2,3,4]

2.2 TS 类型约束(必掌握)

函数的剩余参数 必须显式指定类型,且类型只能是「数组类型」,常见 2 种写法,完全等价:

ts

// ✅ 写法1:推荐,简洁直观,最常用
function fn1(…args: string[]) {}

// ✅ 写法2:元组语法,等价于数组,适合强调「有序集合」
function fn2(…args: Array<string>) {}

2.3 核心规则 1:剩余参数必须是函数的「最后一个参数」

赞(0)
未经允许不得转载:171主机测评 » TypeScript 核心技巧:「...rest 剩余运算符」完全总结(核心技巧 + 全场景)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址