首页 > 解决方案 > 如何声明“承诺”构造函数?

问题描述

我有一个针对 ES5 的旧 TypeScript 项目,但由于多种因素,升级到任何更新的项目(例如 ES2015)不是一个选项。在尝试使用 async/await 编译代码时出现错误:

TS2705 (TS) An async function or method in ES5/ES3 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your--liboption.

该错误表明有 2 个选项可以解决它,而升级到 ES2015 的选项对我来说不是一个选项,因此我想知道如何准确声明“Promise”构造函数。

我搜索了论坛,发现了许多类似的问题,但我能找到的所有建议最终都建议至少升级到 ES2015,正如我在上面指出的,这不是我的选择。

标签: javascripttypescriptpromiseasync-awaitecmascript-5

解决方案


尝试在js中找到Promise类的源代码并注入global.Promise = 'what you copied'

或者您可以使用其他一些库,例如 bluebird - 以同样的方式。

global.Promies = require('bluebird')()

推荐阅读