在TypeScript中,要向期望使用.call
调用的函数添加泛型,可以按照以下步骤进行:
type MyFunctionType<T, R> = (arg: T) => R;
。这里的T
表示参数的类型,R
表示返回值的类型。.call
调用的函数的参数类型和返回值类型。例如,function myFunction<T, R>(fn: MyFunctionType<T, R>, arg: T): R { ... }
。这里的fn
参数接收一个函数,arg
参数表示传递给该函数的参数。.call
方法来调用传入的函数,并将传入的参数作为.call
的第一个参数传递进去。例如,return fn.call(null, arg);
。这里的null
表示.call
方法中的this
值,如果传递null
,则函数内部的this
将指向全局对象。下面是一个完整的示例代码:
type MyFunctionType<T, R> = (arg: T) => R;
function myFunction<T, R>(fn: MyFunctionType<T, R>, arg: T): R {
return fn.call(null, arg);
}
// 示例函数
function addOne(num: number): number {
return num + 1;
}
const result = myFunction(addOne, 5);
console.log(result); // 输出: 6
在这个示例中,myFunction
函数接收一个函数addOne
和一个参数5
。它使用.call
方法来调用addOne
函数,并将参数5
传递给它。最终,将返回结果6
打印到控制台。
希望这个回答对你有帮助!如果你对其他问题有任何疑问,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云