Typescript 函数具有类型变量<;时如何获取函数参数;T>;?
我有一个typescript函数,如下所示:Typescript 函数具有类型变量<;时如何获取函数参数;T>;?,typescript,Typescript,我有一个typescript函数,如下所示: function test<T>(func: (thing: T) => {}) { } function normalFun(a: string, b: string) { } function newNormalFun(...args: Parameters<typeof normalFun>) { // now typeof args is [string,string] } 但是它对于使用的测试功能是无
function test<T>(func: (thing: T) => {}) {
}
function normalFun(a: string, b: string) {
}
function newNormalFun(...args: Parameters<typeof normalFun>) {
// now typeof args is [string,string]
}
但是它对于使用
的测试
功能是无用的
参数功能:
//from typescript lib.es5.d.ts
type Parameters<T extends (...args: any) => any> = T extends (...args: infer P) => any ? P : never;
//来自typescript lib.es5.d.ts
类型参数any>=T扩展(…参数:推断P)=>any?P:从来没有;
它使用推断
获得目标。
有没有一种方法可以用已知的T推断函数的类型?没有,没有语法。如果
T
具有约束,则Parameters
类型将提取参数,就像T
是约束一样,但您不能为特定的T
执行此操作。您能否给出一个使用示例,说明如果该功能存在,您希望如何使用它。例如,您的用例与我在操场上写的有什么不同:我正在尝试为mongoose.Schema.prototype.pre
函数创建一个decoratorpre
。输入参数应该与之类似。希望我可以引用它,而不是复制它。不,没有语法。如果T
具有约束,则Parameters
类型将提取参数,就像T
是约束一样,但您不能为特定的T
执行此操作。您能否给出一个使用示例,说明如果该功能存在,您希望如何使用它。例如,您的用例与我在操场上写的有什么不同:我正在尝试为mongoose.Schema.prototype.pre
函数创建一个decoratorpre
。输入参数应该与之类似。希望我能引用它,而不是复制它。