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]
相关推荐
ctrl_v助手2 小时前
C#表达题笔记
开发语言·c#
一tiao咸鱼2 小时前
前端转 agent # 03 - Pydantic v2 数据校验深入
前端·后端
Cobyte2 小时前
23.Vue Vapor 组件 attrs 的实现
前端·javascript·vue.js
前端H2 小时前
生成式 UI 实战:AI 如何重塑前端界面
前端·人工智能·ui
懂懂tty2 小时前
Web前端性能指标
前端
2zcode3 小时前
基于MATLAB卷积神经网络的口罩佩戴检测系统
开发语言·matlab·cnn
米饭不加菜3 小时前
使用万用表判断三极管(BJT)好坏
java·开发语言
绝世唐门三哥3 小时前
vue3中页面返回时刷新首页的处理方案
开发语言·前端·javascript
nianniannnn3 小时前
c++复习自存--流、异常处理、多线程与C++工程规范
开发语言·c++