args,...args与Parameters<T>

1、...args

...args含义是:

从调用方传进来的那一串逗号分隔的参数里,把落在这个位置上的参数收集进变量 args。

定义时写 ...args,类型是数组 ------ 因为收进来之后它就是数组

2、(...args: never[]) => void

never[]这里的含义是:

  • never = 不可能存在的类型(没有任何值能赋给它)
  • never[] = 一个元素类型为 never 的数组
  • 这里表示该函数不能接收任何参数

<T extends (...args: never[]) => void>

T extends (...args: never[]) => void 是 TypeScript 里常见的泛型写法,

右侧只是给 T 定一个「必须是函数、且返回值可赋给 void」的上界

目的是让传入的具体 fn 被推断出完整签名,从而 Parameters<T> 能拿到真实参数元组。。

这里意思是:T 必须是「任意参数个数、返回 void(或可赋给 void)」的函数类型。


3、Parameters<T> 描述函数的参数的 ts 类型,这里T是个函数

Parameters<T> 只和函数类型 T 有关,和变量名 args 无关。

举例:

tsx 复制代码
const fn = (name: string, age: number) => { ... };
// T 被推断为: (name: string, age: number) => void
// Parameters<T> 为: [string, number]
相关推荐
hunterandroid2 分钟前
[鸿蒙从零到一] HarmonyOS 单元测试与 UI 自动化测试实战:从代码质量到用户体验的全链路保障
前端
郭邯6 分钟前
用 Intl.DateTimeFormat 手写一个时区转换器,顺便聊聊我和 AI 结对编程的日常
前端·javascript
阿奇__7 分钟前
微前端、iframe与Auth Code技术方案对比
前端
FungLeo12 分钟前
React 管理后台实战 · 前端请求层怎么写?401 静默刷新、token 并发竞争、强制改密拦截一次说清
前端·react.js·前端框架
zoujiahui_201816 分钟前
Python 包与环境管理工具 uv
开发语言·python·uv
吴声子夜歌30 分钟前
Java面试题——JVM(二)
java·开发语言·jvm
CRMEB32 分钟前
商城大促活动策划全流程:从定目标到复盘四阶段
java·开发语言·人工智能·ai·开源·php
denglinqings32 分钟前
Java开发从入门到精通所有课程
java·开发语言
程序猿阿森1 小时前
Python 闭包与装饰器:从入门到精通
开发语言·python·面试
Vuji1 小时前
Pi 插件解剖|ssh.ts:只用 221 行,让 Agent 直接在远程机器干活
前端·人工智能·agent