TypeScript生成错误:生成:ES5/ES3中的异步函数或方法需要';承诺';建造师

TypeScript生成错误:生成:ES5/ES3中的异步函数或方法需要';承诺';建造师,typescript,Typescript,我使用VS2017和TypeScript 2.5.3 .ts代码如下所示: class LossEnergyCalculation { async initLossEnergyCalculation(): Promise<void> { try { const response = await fetch("/LossEnergyCalculation/GetOilFieldList"); const oilF

我使用VS2017和TypeScript 2.5.3

.ts代码如下所示:

class LossEnergyCalculation {

    async initLossEnergyCalculation(): Promise<void> {
        try {
            const response = await fetch("/LossEnergyCalculation/GetOilFieldList");
            const oilFieldsData = await response.json();
    }
    ...
}
我没有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
声明。在运行时,如果您的运行时没有对承诺的内置支持,那么您还需要一个承诺库

要指定libs,需要一个tsconfig.json。根据您在问题中指定的内容。这应该与您当前的配置相同

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

注意对于其余的运行时声明,我只包括了
es2015.promise
中的
es2015和
es5
。这确保您不会获得不应该使用的
es2015
功能,您只会得到所需的承诺。另外,仅仅因为包含了
es2015.priomise
lib,并不意味着运行时会有承诺,这应该单独处理

我已按照您的建议添加了tsconfig.json文件,但出现了相同的错误。tsconfig.json文件和我的.ts文件位于同一个脚本文件夹中。您将其保存在哪里?应用程序的根?如果转到“项目设置”,typescript build中的选项是否已停用?(如果不是,这意味着没有考虑tsconfig.json)我应该从npm下载其他东西吗?您发送给我的项目已成功构建,但我的项目未成功构建。我不知道为什么。
{
  "compilerOptions": {
    "module": "commonjs",
    "sourceMap": true,
    "target": "es5",
    "lib": [ "es2015.promise", "es5", "dom" ]
  }
}