【问题标题】:How to resolve 'Build:'Promise' only refers to a type, but is being used as a value here.'如何解决'Build:'Promise' 仅指一种类型,但在此处用作值。
【发布时间】:2018-02-15 05:02:55
【问题描述】:

在打字稿中,我收到构建错误,提示“构建:'Promise' 仅指一种类型,但在此处用作值。”。

我的项目目标是“ES5”。从这个线程,我可以通过将其更改为 ES6 来解决问题。有没有办法在不改变目标的情况下解决问题?

typescript: error TS2693: 'Promise' only refers to a type, but is being used as a value here

谢谢。

【问题讨论】:

  • 如果你能发布一个失败的代码示例会有所帮助。

标签: typescript


【解决方案1】:

要在不更改 lib 的情况下解决此问题,您必须将 @types/node 添加到依赖项或 devDependencies 这将解决不仅Promise而且所有节点类型

npm i @types/node

这是我的库:​​

"target": "es5",
"lib": [
  "dom",
  "es5",
  "dom.iterable",
  "scripthost"
]

【讨论】:

    【解决方案2】:

    如果您确定要运行它的环境支持 Promise,您可以针对 ES5,但添加 lib 编译器选项:

    "compilerOptions": {
        // ...
        "target": "es5",
        "lib": [
            "es2015.promise" // Or "es2015" or "es6" should work as well
        ]
    }
    

    【讨论】:

    • 谢谢。如何配置 tsc 以查找“es6.promise”作为库?我的打字稿项目不是由 npm 管理的。我尝试了上述建议,我收到一条错误消息,提示 Promise 不是已定义的类型。
    • 你是如何编译你的 TypeScript 代码的?如果您使用tsconfig.json,上述选项应该可以工作。如果您从命令行运行tsc,则该选项应为--lib。见compiler options
    猜你喜欢
    • 1970-01-01
    • 2018-08-07
    • 2020-04-28
    • 2021-08-23
    • 2020-12-05
    • 2018-03-31
    • 2023-04-03
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多