我有一个用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
[...]
打字稿抱怨
参数“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 安装的定义。
我不知道如何处理节点类型的定义。
任何人都可以给我提示如何下载您在节点中使用的类型的定义吗?
最后我可以这样解决:
function onRequest(local_req: IncomingMessage, local_res: ServerResponse)
但是我不得不到处搜索,找到与我安装的版本不同且不兼容的版本,并且编辑器(vscode)对此有点误导。
我想知道是否有更好的方法来处理此类问题