web-dev-qa-db-fra.com

ts Une fonction ou une méthode asynchrone dans ES5 / ES3 nécessite le constructeur "Promise"

Bonjour, j'utilise async/wait dans mon projet TypeScript, mais j'obtiens ce journal:

[ts] Une fonction ou une méthode asynchrone dans ES5/ES3 nécessite le constructeur "Promise". Assurez-vous de disposer d'une déclaration pour le constructeur "Promise" ou incluez "ES2015" dans votre option --lib.

Comment puis-je résoudre cela?

78

Comme le message d'erreur le dit, ajoutez lib: es2015 à votre tsconfig.json

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

UPDATE: si cela ne fonctionne pas pour vous, essayez ceci:

JetBrains IDE tel que WebStorm, utilise sa propre implémentation par défaut. Assurez-vous de le configurer pour utiliser le service de langage TypeScript à la place.

Pour Visual Studio, les fichiers de projet et tsconfig.json s'excluent mutuellement. Vous devrez configurer votre projet directement.

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

121
unional

Essayez ce paquet qui contient les définitions de type pour es6-promise

npm install --save @types/es6-promise

20
Jeff Hernandez

Si vous êtes sur VS, supprimez le fichier tsconfig.json et cliquez avec le bouton droit de la souris sur le projet dans l'Explorateur de solutions, puis cliquez sur Propriétés-> TypeScript Générer dans Général modifier les éléments suivants.

  • Version ECMAScript: ECMAScript 6

  • Système de module: ES2015

7
Ivandro Ismael

Vous pouvez également utiliser le "lib": "es2015.promise" pour cette erreur spécifique

0