J'essaie d'utiliser la méthode finally sur une promesse, mais je continue à avoir cette erreur.
Property 'finally' does not exist on type 'Promise<void>'.
J'ai consulté des questions similaires à celles-ci qui ont suggéré d'ajouter "es2018.promise" au tableau "lib" dans tsconfig.js. Cela produit alors l'erreur suivante:
TypeScript error
Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'esnext', 'dom',
'dom.iterable', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator',
'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol',
'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory', 'es2017.string',
'es2017.intl', 'esnext.asynciterable'.
Toute aide pour résoudre ceci est grandement appréciée!
La prise en charge ES2018 n'a pas été ajoutée jusqu'à/ TypeScript 2.7 . La mise à niveau vers cette version ou ultérieure corrige cette erreur.
Bien que TypeScript 2.7 puisse le prendre en charge, vous devez cibler: "ESNEXT" dans votre tsconfig.json.
Ce qui signifie que votre code ne fonctionnera probablement pas dans les navigateurs plus anciens ou dans les versions de node.js.
J'utilise: "@ Types/promise.prototype.finally": "^ 2.0.2", Import {shim comme finallyShim} de 'promise.prototype.finally'; enfinShim ();
J'ai résolu ce problème en utilisant ceci https://www.npmjs.com/package/promise.prototype.finally car il semble que ce soit un problème avec ionic pas TypeScript. J'imagine que cela sera corrigé dans un proche avenir.
Merci à tous ceux qui m'ont aidé avec ça.
Pour TypeScript 3.3.3
, ajoutez simplement es2018.promise
à votre config tsconfig.json
- compilerOptions.lib
comme ceci:
"lib": ["es2015", "es2016", "dom", "es2018.promise"]
Si vous utilisez vscode
, vous devriez peut-être reload window
après avoir ajouté cette option à votre fichier tsconfig.json