gpt4 book ai didi

TypeScript 构建错误 : Build:An async function or method in ES5/ES3 requires the 'Promise' constructor

转载 作者:行者123 更新时间:2023-12-03 09:04:26 31 4
gpt4 key购买 nike

我使用 VS2017 和 TypeScript 2.5.3。

.ts 代码如下所示:

class LossEnergyCalculation {

async initLossEnergyCalculation(): Promise<void> {
try {
const response = await fetch("/LossEnergyCalculation/GetOilFieldList");
const oilFieldsData = await response.json();
}
...
}

在 TypeScript Build 部分的项目属性中,我设置了:

TypeScript version: 2.5
ECMAScript version: ECMAScript 5
JSX compilation in TSX files: None
Module System: CommonJS

我没有 tsconfig.json 文件。

当我构建项目时出现以下错误:

Build: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 `--lib` option.

如何消除错误?

最佳答案

您必须指定 lib 选项才能包含 Promise 声明。在运行时,如果您的运行时没有对 promise 的内置支持,您还需要一个 promise 库。

要指定库,您将需要 tsconfig.json。根据您在问题中指定的内容。这应该相当于您当前的配置

{
"compilerOptions": {
"module": "commonjs",
"sourceMap": true,
"target": "es5",
"lib": [ "es2015.promise", "es5", "dom" ]
}
}

注意 我只包含了 es2015es5 中的 es2015.promise 作为其余的运行时声明。这可以确保您不会获得不应该使用的 es2015 功能,而只会获得您需要的 promise 。另外,仅仅因为包含了 es2015.priomise 库并不意味着运行时将有 promise ,这应该单独处理。

关于TypeScript 构建错误 : Build:An async function or method in ES5/ES3 requires the 'Promise' constructor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48165533/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com