Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

I am trying to use the finally method on a promise but I keep getting this error.

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

I have looked up similar questions to this which have suggested adding "es2018.promise" to the "lib" array in tsconfig.js. This then produces the following error:

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'. 

Any help resolving this is greatly appreciated!

like image 920
JJ Pell Avatar asked Aug 29 '18 13:08

JJ Pell


2 Answers

For TypeScript 3.3.3, just add es2018.promise to your tsconfig.json - compilerOptions.lib config like this:

"lib": ["es2015", "es2016", "dom", "es2018.promise"]

If you use vscode, maybe you should reload window after adding this option to your tsconfig.json file

like image 137
slideshowp2 Avatar answered Sep 21 '22 22:09

slideshowp2


ES2018 support was not added until TypeScript 2.7. Upgrading to that version or later resolves this error.

like image 28
JBC Avatar answered Sep 20 '22 22:09

JBC