TypeScript隐式表示Superagent有任何错误

TypeScript隐式表示Superagent有任何错误,typescript,visual-studio-code,superagent,Typescript,Visual Studio Code,Superagent,我在一个TypeScript项目中使用了superagent,并且安装了@types/superagent,但是我看到了一个我不理解的类型错误。鉴于以下情况 const myRequest = request .get('/path/to/api') .end((err, res) => { // Do stuff with err and res }) 对于err和res,我会得到这些错误: 参数“err”隐式具有“any”类型。ts(7006) 参数'res'隐式

我在一个TypeScript项目中使用了
superagent
,并且安装了
@types/superagent
,但是我看到了一个我不理解的类型错误。鉴于以下情况

const myRequest = request
  .get('/path/to/api')
  .end((err, res) => {
    // Do stuff with err and res
  })
对于
err
res
,我会得到这些错误:
参数“err”隐式具有“any”类型。ts(7006)
参数'res'隐式地具有'any'类型。ts(7006)

但与此同时,TypeScript似乎确实知道这些变量的类型,因为当我在VSCode中悬停在它们上时,它显示了
@types/superagent
中的正确类型,如下图所示

在图像中,它显示它正确地从
@types/superagent
获取
res
的类型作为
request.Response


因此,我不明白为什么会出现这些隐式类型错误。有人能向打字新手解释这一点吗?谢谢:)

您没有指定参数的类型。请尝试以下操作:

const myRequest = request
  .get('/path/to/api')
  .end((err, res: request.Response) => {
    // Do stuff with err and res
  })

这并没有解决最初的问题:“为什么我会出现这些隐式类型错误”而且
res
的类型更有可能是从API返回的对象类型实际上这不是一个新手的事情。如果我理解正确的话,这真的很奇怪,因为它同时告诉你它知道类型和不知道类型。只是确认一下,截图是一个整体,对吗?不是从不同的地方组装的?另外,如果将鼠标悬停在
.end
上,您会看到什么?请注意,VSCode有自己的内置版本的TypeScript,用于提供内联类型信息。默认情况下,它与磁盘上的不同。你试过重新启动VSCode吗?这将迫使它重新扫描所有导入的类型信息。我相信你已经在你的code@Mr.AFtypescript应该能够推断出,无需重复两次。@Mr.AF如果您显式地将回调参数键入为
any
,它仍然会通过,因为这两种函数类型仍然是兼容的。