【发布时间】: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