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]
相关推荐
丈剑走天涯27 分钟前
JDK 17 正式特性
java·开发语言
东方小月32 分钟前
从零开发一个 Coding Agent(四):使用状态机校验大模型事件流
前端·人工智能·后端
秋田君37 分钟前
QT_QFontDialog类字体对话框
开发语言·qt
圣光SG41 分钟前
Java操作题练习(七)
java·开发语言·算法
Csvn1 小时前
🧩 ESM vs CJS 混用的 7 个「天坑」——从 TypeScript 编译到 Node 与浏览器
前端
Csvn1 小时前
🎯 Web 性能 API 集合:Performance Observer 的 5 个冷门妙用
前端
Csvn1 小时前
深入 React 闭包陷阱:从根源上理解并根治 stale closure
前端
whyfail1 小时前
前端学 Spring Boot(8):接口为什么越用越慢?
前端·spring boot·后端
麻瓜老宋2 小时前
AI开发C语言应用按步走,表达式计算器calc的第二十三步,多行输入、进制输出、错误恢复、常量折叠、配置加载等
c语言·开发语言·atomcode
用户059540174462 小时前
LangChain 记忆测试踩坑实录:这两个坑让我排查了 4 小时
前端·css