120 votes

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 d'avoir une déclaration pour le constructeur 'Promise' ou incluez 'ES2015' dans votre option --lib .

Comment puis-je résoudre cela?

177voto

unional Points 4754

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

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

Mise à JOUR: si cela ne fonctionne pas pour vous, essayez ceci:

JetBrains IDE comme WebStorm, utiliser sa propre implémentation par défaut. Assurez-vous de le configurer pour utiliser la Machine de la langue de service à la place.

Pour Visual Studio, les fichiers de projet et de l' tsconfig.json sont mutuellement exclusifs. Vous aurez besoin de configurer votre projet directement.

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

28voto

Jeff Hernandez Points 452

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

npm install --save @types/es6-promise

15voto

Ivandro Ismael Points 34

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 -> Génération TypeScript dans Général, modifiez les éléments suivants

  • Version ECMAScript: ECMAScript 6

  • Système de module: ES2015

3voto

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

-4voto

Valone Points 28

J'utilise VS2017 v15.8.2 et Typescript 2.4.2 dans un projet Angular 4 (dans le cadre d'un projet de bibliothèque de classes dans ma solution, et non d'un projet dactylographié). J'ai pu supprimer l'erreur / l'avertissement dans VS en désactivant le service de langage JavaScript :

Options => Éditeur de texte => JavaScript / TypeScript => Service de langage

Redémarrez VS.

J'espère que cela t'aides.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X