【问题标题】:TypeScript error : Rxjs calls setTimeout differently than defined in @types/nodeTypeScript 错误:Rxjs 调用 setTimeout 与 @types/node 中定义的不同
【发布时间】:2019-04-10 00:37:24
【问题描述】:

运行时:

  • 节点 v11.7.0
  • RxJS 版本:6.3.3
  • @types/节点:8.10.45
  • tsc:3.2.4

当运行 tsc 时,我看到在 Rxjs 中的某个地方,setTimeout 被调用而不传递 ms 参数,这违反了 setTimeout@types/node 定义。由于我更新到最新版本的 Rxjs,我无法再构建我的项目了。

有解决办法吗?

node_modules/rxjs/src/internal/util/hostReportError.ts:7:3 - error TS2555: Expected at least 2 arguments, but got 1.

7   setTimeout(() => { throw err; });
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


node_modules/@types/node/index.d.ts:123:65
    123 declare function setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;
                                                                        ~~~~~~~~~~
    An argument for 'ms' was not provided.

【问题讨论】:

  • 这不是一种解决方法,它只是一种正常的做法,永远不要在node_modules 中编译任何源代码。您的项目应该使用来自其依赖项的已编译 .js.d.ts 文件,而不是源 .ts 文件。
  • 哇,这让我很困惑,因为据我所知,我没有在 node_modules 中编译任何东西。我将它从我的 tsconfig 中排除。

标签: node.js typescript rxjs


【解决方案1】:

我通过将以下内容添加到我的tsconfig.json 解决了这个问题:

  "lib": [
    "dom",
    "es2017"
  ]

【讨论】:

    猜你喜欢
    • 2017-04-05
    • 2022-11-11
    • 2017-08-13
    • 1970-01-01
    • 2020-10-30
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多