我试图将一个函数包装在另一个函数中,然后再将其传递给稍后运行的库。我在尝试使用 .apply() 和传播参数时遇到了各种各样的 Typescript 错误。
该库要求我向它传递一个“选项”对象,其中包括一个名为 PromiseFn 的函数,该函数将由库使用任意数量的参数调用。
我需要将 promiseFn 包装在一个新函数中,该函数将在调用原始 promiseFn 之前和之后运行一些代码。新函数将是传递给库的函数。这是我试过的。
let newOptions = options
if(options.promiseFn !== undefined){
let newPromiseFn = async (...args: any[]) => {
... before code
await options.promiseFn?.apply(this, ...args)
... before code
}
newOptions.promiseFn = newPromiseFn
}
const { data } = useAsync(newOptions)
我目前得到的typescript错误是......
(parameter) args: any[] 需要 1-2 个参数,但得到 1 个或更多.ts(2556)
它与这一行中的参数有关
await options.promiseFn?.apply(this, ...args)
任何帮助将不胜感激。