You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript扩展运算符含义解析及泛型类型定义语法疑问

TypeScript扩展运算符与ReturnOf泛型解析
  • 先看类型定义里的(...arg: any[]):这里的...是剩余参数语法,在函数类型签名里用来表示这个函数可以接收任意数量、任意类型的参数。any[]表示这些参数的集合是任意类型的数组,两者结合起来就是用来匹配“不管传什么参数都能接受”的函数类型。

  • 整个ReturnOf<F>泛型的作用:这是一个条件类型,核心逻辑是判断泛型参数F是不是一个函数类型——如果F符合“接受任意参数、返回值类型可被推断为R”的函数签名,就把这个返回值类型R取出来作为最终类型;如果F不是函数类型,就返回never(表示不存在的类型)。

举个实际使用的例子:

// 定义一个普通函数
function multiply(x: number, y: number): number {
  return x * y;
}

// 用ReturnOf获取它的返回值类型
type MultiplyResult = ReturnOf<typeof multiply>;
// MultiplyResult的类型会被推断为number

内容的提问来源于stack exchange,提问作者vuvu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 07:55:32