node.js - importera node-begärans typer för typescript


Jag har en liten proxyserver utvecklad i Node med JS och jag försöker skriva om den i TypeScript.

Jag har följande kod:

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
[...]

OCH TypeScript klagar på

Parametern 'local_req' har implicit typen 'any'.ts(7006) Parametern 'local_res' har implicit typen 'any'.ts(7006)

Jag gjorde redan npm i @types/node -D

Jag ser att definitionen av createServer-metoden är som följande:

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

Men jag har inte definitionen av RequestListener

Jag googlar det och jag hittar det här (jag trodde att det borde ha varit installerat npm i @types/node -D), så här:

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

Sedan letar jag efter definitionen av ServerRequest och den finns här, men jag har den inte tillgänglig på min dator.

Jag antar att den definition jag har googlat inte är den jag har installerat med npm.

Jag förstår inte hur man hanterar definitionerna av nodtyper.

Kan någon ge mig en ledtråd om hur man laddar ner definitionerna av de typer du använder i Node?

Svar #1

I slutändan kunde jag lösa det på det här sättet:

function onRequest(local_req: IncomingMessage, local_res: ServerResponse)

Men jag var tvungen att googla runt, hitta en annan och inkompatibel version än den jag hade installerad, och redigeraren (vscode) var lite vilseledande om det.

Jag undrar om det finns ett bättre sätt att hantera den här typen av problem