错误 TS2794: 预期的1个参数,但是得到了0。您是否忘记在类型参数中包含‘ void’到‘ ny’?

在我的项目中,我使用的是 Typescript@4.0.3,它工作得很好,但现在我更新了它的版本到最新的 Typescript@4.1.3,它给了我很多错误。我在文档中找不到任何东西,也不知道如何解决这个问题。

我的原则是:

dbPool.query(`DELETE FROM table WHERE Id='${Id}'`, () => resolve())

另一个是:

return new Promise((resolve, reject) => {
this.redis.SET(addr, resp, () => resolve())
})

这两个都让我犯了错误:

错误 TS2794: 预期的1个参数,但是得到了0。您是否忘记在类型参数中包含‘ void’到‘ ny’?

我应该在 resolve()中传递什么来解决这个问题?

36486 次浏览

在您的例子中,resolve的标准参数是 unknown,这意味着需要一个参数;

如果您不希望 resolve采用任何参数,您可以显式地将 Promise的泛型类型设置为 void;

return new Promise<void>((resolve, reject) => {
this.red.SET(addr, resp, () => resolve())
})