node.js - 导入 typescript 的 Node 请求类型

标签 node.js typescript definitelytyped type-definition

我有一个用js在node中开发的小型代理服务器,我正在尝试用typescript重写它。

我有以下代码:

http.createServer(onRequest).listen(config.port);
console.log(`proxy listening on port ${config.port}`)

function onRequest(local_req:, local_res) {
  console.log('serve: ' + local_req.url);

  const url = config.forward_url + local_req.url
[...]

typescript 提示

参数“local_req”隐式具有“any”类型。ts(7006) 参数“local_res”隐式具有“any”类型。ts(7006)

我已经做了npm i @types/node -D

我看到createServer方法的定义如下:

function createServer(options: ServerOptions, requestListener?: RequestListener): Server;

但是我没有RequestListener的定义

我用谷歌搜索,找到了它 here (我认为它应该已经安装npm i @types/node -D),如下所示:

export function createServer(requestListener?: (request: ServerRequest, response: ServerResponse) =>void ): Server;

然后我查找 ServerRequest 的定义,它是 here ,但我的机器上没有它。

我猜我搜索到的定义不是我用 npm 安装的定义。

我不知道如何处理 Node 类型的定义。

任何人都可以给我提示如何下载您在 Node 中使用的类型的定义吗?

最佳答案

最后我可以这样解决:

function onRequest(local_req: IncomingMessage, local_res: ServerResponse)

但是我不得不到处搜索,找到与我安装的版本不同且不兼容的版本,并且编辑器(vscode)对此有点误导。

我想知道是否有更好的方法来处理此类问题

关于node.js - 导入 typescript 的 Node 请求类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56490930/

相关文章:

javascript - 返回空数组或错误

node.js - Symfony 2.3 无法与项目中嵌入的 "less"配合良好

node.js - 有没有办法在 TypeORM 中访问 `last_inserted_id`?

Angular 加载微调器错误 :ExpressionChangedAfterItHasBeenCheckedError

typescript - 对于已发布的包,@types 应该是什么依赖类型?

javascript - Grails 3 访问 node_modules

javascript - 具有路径和 equalTo bool 值的 Firebase orderByChild 不会返回任何内容

typescript - 何时在 Angular2 typescript 中创建构造函数?

node.js - 在 typescript 中使用指挥官

javascript - SPServices 的 TypeScript 定义文件