45 votes

La propriété «enfin» n'existe pas sur le type «Promesse»<void> '

J'essaie d'utiliser la méthode finally sur une promesse mais je continue à recevoir cette erreur.

 Property 'finally' does not exist on type 'Promise<void>'.

J'ai recherché des questions similaires à celle-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 ce problème est grandement appréciée!

58voto

novaline Points 2220

Pour TypeScript 3.3.3 , ajoutez simplement es2018.promise à votre 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

8voto

JBC Points 617

La prise en charge d'ES2018 n'a été ajoutée qu'après TypeScript 2.7 . La mise à niveau vers cette version ou une version ultérieure résout cette erreur.

7voto

rod howard Points 11

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 anciens navigateurs ou les versions de node.js.

J'utilise:

 "@types/promise.prototype.finally": "^2.0.2"
 import { shim as finallyShim } from 'promise.prototype.finally'; 
finallyShim();

0voto

JJ Pell Points 55

J'ai résolu ce problème en utilisant ce https://www.npmjs.com/package/promise.prototype.finally car cela semble être un problème avec ionic pas dactylographié. J'imagine que cela sera corrigé dans un proche avenir.

Merci à tous ceux qui m'ont aidé avec ça.

0voto

Yao Points 6

Assurez-vous que vous installez d'abord yarn / npm, l'erreur disparaît après l'installation si vous avez déjà le es2018.promise dans tsconfig.json .

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