错误 TS2794:需要 1 个参数,但得到 0 个参数。您是否忘记在 'Promise' 的类型参数中包含 'void'?

error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'?

在我的项目中,我使用的是 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())
})

这两个都给我错误:

error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'?

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

在你的情况下 resolve 的标准参数是 unknown,这意味着需要一个参数;

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

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