web-dev-qa-db-ja.com

ES5 / ES3の非同期関数または非同期メッセージには「Promise」コンストラクタが必要

こんにちは私は私のTypeScriptプロジェクトでasync/awaitを使っています、しかし私はこのログを得ます:

[ts] ES5/ES3の非同期関数または非同期メソッドには 'Promise'コンストラクタが必要です。 'Promise'コンストラクタの宣言があるか、--libオプションに 'ES2015'を含めるようにしてください。

どうすれば解決できますか?

76

エラーメッセージが示すように、あなたのtsconfig.jsonにlib: es2015を追加してください

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

アップデート:これがうまくいかない場合は、以下を試してください。

WebStormなどのJetBrains IDEは、デフォルトで独自の実装を使用します。代わりにTypeScript言語サービスを使用するように設定してください。

Visual Studioの場合、プロジェクトファイルとtsconfig.jsonは相互に排他的です。プロジェクトを直接設定する必要があります。

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

119
unional

Es6-promiseの型定義を含むこのパッケージを試してください。

npm install --save @types/es6-promise

20
Jeff Hernandez

VSを使用している場合は、tsconfig.jsonを削除し、ソリューションエクスプローラーでプロジェクトを右クリックしてから、プロパティ - > TypeScriptで一般にビルドを変更します。

  • ECMAScriptのバージョン:ECMAScript 6

  • モジュール方式:ES2015

4
Ivandro Ismael

その特定のエラーには "lib": "es2015.promise"を使用することもできます。