Kompajler za TypeScript kaže „Asinkrona funkcija ili metoda u ES5/ES3 zahtijeva konstruktor 'Promise'“; kako to mogu riješiti?
Bok, koristim async/await u svom TypeScript projektu, ali dobivam ovaj zapis:
[ts] Asinkrona funkcija ili metoda u ES5/ES3 zahtijeva konstruktor 'Promise'. Provjerite imate li deklaraciju za konstruktor 'Promise' ili uključite 'ES2015' u svoju
--libopciju.
Kako to mogu riješiti?
Odgovor #1
Kao što poruka o pogrešci kaže, dodajte lib: es2015 u svoj tsconfig.json
// tsconfig.json
{
"compilerOptions": {
"lib": [ "es2015" ]
}
}
AŽURIRANJE: ako vam ovo ne odgovara, pokušajte ovo:
IDE-ovi JetBrains poput WebStorma prema zadanim postavkama koriste vlastitu implementaciju. Provjerite jeste li ga konfigurirali da koristi TypeScript jezičnu uslugu umjesto toga.
Za Visual Studio, projektne datoteke i tsconfig.json su međusobno isključivi. Morat ćete izravno konfigurirati svoj projekt.
https://github.com/Microsoft/TypeScript/issues/3983#issuecomment-123861491
Odgovor #2
Isprobajte ovaj paket koji sadrži definicije tipova za es6-promise
npm install --save @types/es6-promiseOdgovor #3
Ako ste u VS-u, izbrišite tsconfig.json i desnom tipkom miša kliknite na projekt u Solution Exploreru, zatim kliknite na Properties->TypeScript Build in General i promijenite sljedeće
Verzija ECMAScripta: ECMAScript 6
Sustav modula: ES2015
Odgovor #4
U mom slučaju, jednostavno sam slučajno izbrisao svoj 'return' izraz u funkciji, i ova se pogreška prikazivala dok ga nisam vratio.
