Hallo, ich verwende async / await in meinem TypeScript-Projekt, aber ich erhalte dieses Protokoll:
[ts] Eine asynchrone Funktion oder Methode in ES5 / ES3 erfordert den Konstruktor 'Promise'. Stellen Sie sicher, dass Sie eine Deklaration für den Konstruktor 'Promise' haben, oder fügen Sie 'ES2015' in Ihre --lib
Option ein.
Wie kann ich das lösen?
quelle
{ "compilerOptions": { "module": "commonjs", "target": "es5", "noImplicitAny": false, "sourceMap": false } }
Dies ist meine tsconfig.json. Wie soll ich bearbeiten?csproj
Datei einige zusätzliche XML-Elemente enthält, um solche Dinge zu aktivieren / deaktivieren."dom"
in das"lib"
Array aufnehmen oder ich bekomme andere Fehler.Probieren Sie dieses Paket aus, das Typdefinitionen für es6-Versprechen enthält
npm install --save @types/es6-promise
quelle
Wenn Sie sich in VS befinden, löschen Sie die Datei tsconfig.json und klicken Sie mit der rechten Maustaste auf das Projekt im Projektmappen-Explorer. Klicken Sie dann auf Eigenschaften-> TypeScript Build in General. Ändern Sie die folgenden Schritte
ECMAScript-Version: ECMAScript 6
Modulsystem: ES2015
quelle
Sie können auch die "lib": "es2015.promise" für diesen bestimmten Fehler verwenden
quelle
VS2019 scheint die Datei tsconfig.json nicht zu erkennen, daher ändern LIB-Optionen die Anwendung nicht. Auf diese Weise können Sie das PROMISE für Typoskript hinzufügen, um ASYNC AWAIT zu akzeptieren.
quelle
Bei mir ist der Fehler in meinen Testdateien im
src/tests
Ordner aufgetreten . Da ichts-node
zum.ts
direkten Testen der Dateien verwende, habe ichsrc/tests/*
in meinem ausgeschlossentsconfig.json
. Sobald ich die Zeile gelöscht habe, war der Fehler verschwunden (was am Ende Sinn macht).Nur für den Fall, dass jemand anderes in seinen Testdateien damit zu kämpfen hat.
BEARBEITEN: Natürlich müssen Sie Ihre
--lib
Option korrekt konfigurieren , wie in der akzeptierten Antwort beschrieben. Meinetsconfig.json --lib
Option funktioniert wie folgt:quelle
Ich verwende VS2017 v15.8.2 und Typescript 2.4.2 in einem Angular 4-Projekt (unter einem Klassenbibliotheksprojekt in meiner Lösung kein Typoskriptprojekt). Ich konnte den Fehler / die Warnung in VS entfernen, indem ich den JavaScript-Sprachdienst deaktivierte :
Optionen => Texteditor => JavaScript / TypeScript => Sprachdienst
Starten Sie VS neu.
Hoffe das hilft.
quelle