【问题标题】:Use async / await in TypeScript targeting ES5在针对 ES5 的 TypeScript 中使用 async / await
【发布时间】:2020-05-19 15:15:03
【问题描述】:

我有一个针对 ES5 的 typescript 项目,我正在尝试确定是否可以使用 async / await。

从语法上讲,Typescript 编译器可以很好地转换代码,但是我知道我必须为“Promise”提供一个 polyfill,因为 ES5 中不存在该对象。

我正在尝试为此使用 npm 'promise' 包,但是当我将它包含在具有“async / await”功能的同一个文件中时遇到以下错误:

重复的标识符“承诺”。编译器在包含异步函数的模块的顶级范围内保留名称“Promise”。

因此,我不确定如何提供“承诺”功能,以便代码在运行时不会出错。

有什么解决方法吗?谢谢!

【问题讨论】:

  • 您尝试import 还是什么?不,您应该在捆绑/构建发布时将其作为 polyfill 加载,编译器甚至不应该看到该库。
  • 但是没有看到你的代码(结构)和你的配置,真的很难提供帮助。
  • 只是为了跟进,这是针对我被告知需要同构的库(即 npm 模块)。现在,我被告知它不需要在客户端上工作 - 只需在服务器上(由 Node 应用程序使用),因此不再需要 polyfill,因为 Promise 在 Node 运行时中可用。 @Bergi - 感谢您的意见,如果我需要提供 polyfill,我相信这是正确的答案。

标签: javascript typescript async-await ecmascript-5


【解决方案1】:

如果您使用的是 node.js,我建议使用 ts-node。如果您正在使用 React 进行开发,请尝试使用 Create-React-App 搭建一个 starter。不确定角度。这些是开箱即用的更好选择,而不是尝试将您自己的转译器配置放在一起。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 2017-04-26
    • 2017-05-30
    • 2017-10-03
    • 2020-07-20
    • 1970-01-01
    • 2017-03-22
    相关资源
    最近更新 更多