ts ES5/ES3 中的异步函数或方法需要 'Promise' 构造函数

新手上路,请多包涵

您好,我在我的 TypeScript 项目中使用 async/await,但我得到了这个日志:

[ts] ES5/ES3 中的异步函数或方法需要 ‘Promise’ 构造函数。确保您有“Promise”构造函数的声明或在 --lib 选项中包含“ES2015”。

我该如何解决?

原文由 Saeed Heidarizarei 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.9k
2 个回答

如错误消息所述,将 lib: es2015 添加到您的 tsconfig.json

 // tsconfig.json
{
  "compilerOptions": {
    "lib": [ "es2015" ]
  }
}

更新:如果这对你不起作用,试试这个:

WebStorm 等 JetBrains IDE 默认使用自己的实现。确保将其配置为使用 TypeScript 语言服务。

对于 Visual Studio,项目文件和 tsconfig.json 是互斥的。您将需要直接配置您的项目。

https://github.com/Microsoft/TypeScript/issues/3983#issuecomment-123861491

原文由 unional 发布,翻译遵循 CC BY-SA 4.0 许可协议

我正在使用 JetBrains Rider 2022.2.3 并且在我的 .csproj 项目文件中有以下内容(我没有使用 tsconfig.json 文件):

   <PropertyGroup>
    <TypeScriptTarget>ES6</TypeScriptTarget>
  </PropertyGroup>

以上意味着我可以很好地编译我的 TypeScript,但是在我将 TypeScript 语言服务的目标也设置为 ES6 之前,Rider 仍然显示相同的“使用 –lib 选项”错误消息。在设置中执行以下操作:

在此处输入图像描述

原文由 Eric Mutta 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进