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
相关产品推荐
相关产品推荐

