带有打字稿编译错误的 RxJS Http 服务器

时间:2021-01-09 09:01:54

标签: node.js typescript http rxjs

我是 rxjs 的新手,你能告诉我下面有什么问题吗?

interface IHTTP {
    req: IncomingMessage;
    res: ServerResponse;
    handler?: Promise<any>;
}
server = http.createServer();
  let request$: Observable<any>;
  request$ = fromEvent(server, 'request').pipe(
    map(([req, res]: [IncomingMessage, ServerResponse]): IHTTP => {
        return { req, res } as IHTTP;
      }
    )
  );

编译错误:

TS2345: Argument of type 'OperatorFunction<[IncomingMessage, ServerResponse], IHTTP>' is not assignable to parameter of type 'OperatorFunction<unknown, IHTTP>'.   Type 'unknown' is not assignable to type '[IncomingMessage, ServerResponse]'.

1 个答案:

答案 0 :(得分:0)

我发现我必须将 fromEvent 的第一个参数定义为:

server as FromEventTarget<[http.IncomingMessage, http.ServerResponse]>

否则 Typescript 认为它是 FromEventTarget<unknown>