Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 财产';最后';不存在于类型';承诺<;无效>';_Angular_Typescript_Ionic Framework_Es6 Promise - Fatal编程技术网

Angular 财产';最后';不存在于类型';承诺<;无效>';

Angular 财产';最后';不存在于类型';承诺<;无效>';,angular,typescript,ionic-framework,es6-promise,Angular,Typescript,Ionic Framework,Es6 Promise,我试图在一个承诺上使用finally方法,但我一直得到这个错误 Property 'finally' does not exist on type 'Promise<void>'. 非常感谢您对解决此问题的任何帮助 ES2018支持直到2012年才添加。升级到该版本或更高版本可以解决此错误。我通过使用此解决了此问题,因为这似乎是ionic not typescript的一个问题。我想在不久的将来它会被修复 Property 'finally' does not exist on t

我试图在一个承诺上使用finally方法,但我一直得到这个错误

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

非常感谢您对解决此问题的任何帮助

ES2018支持直到2012年才添加。升级到该版本或更高版本可以解决此错误。

我通过使用此解决了此问题,因为这似乎是ionic not typescript的一个问题。我想在不久的将来它会被修复

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

感谢所有在这方面帮助过我的人。

虽然TypeScript 2.7可能支持它,但您需要在tsconfig.json中以“ESNEXT”为目标

这意味着您的代码可能不会在较旧的浏览器或node.js版本中运行

我正在使用:

"@types/promise.prototype.finally": "^2.0.2"

对于
TypeScript 3.3.3
,只需将
es2018.promise
添加到您的
tsconfig.json
-
compilerOptions.lib
配置中,如下所示:

“lib”:[“es2015”、“es2016”、“dom”、“es2018.promise”]


如果您使用
vscode
,在将此选项添加到您的
tsconfig.json
文件后,您可能应该
重新加载窗口
,确保您首先安装了warn/npm,如果您已经拥有刚刚在堆栈本身上测试的
es2018.promise
中的
,它起作用了。考虑提供一个复制的问题。你使用的是什么版本的打字稿?直到2.7版本才添加对ES2018的支持:刚刚检查,其2.6.2版本,我将更新并检查其是否已解决。谢谢!这已经解决了!如果在
finally
调用中遇到运行时错误,则运行时环境中的promise实现不支持
finally
。TypeScript对此无能为力。您可以尝试安装。我添加了
esnext
,只有这样它才能工作。我使用的是typescript-2.7。对于typescript-2.7,它不适用于
es2018
。这会支持旧浏览器吗?旧浏览器通常需要多边形填充。我意外地遇到了这个问题。我很久没有更新任何东西了,我已经编译了很多没有错误的东西。。。然后今天突然出现了这个“最终”错误。我使用的是3.2.4版。刚刚将es2018添加到tsconfig.json,一切又恢复正常。看起来很奇怪。但为什么es2018.promise而不仅仅是es2018?@Jette
es2018
包含
es2018.Intl
es2018.promise
es2018.RegExp
。因此,如果您只需要
finally
功能,只需将
es2018.promise
添加到lib中。包含多个版本的ES(在您的情况下是2015和2016)有意义吗?我知道你至少需要一个“完整”的库,但我不确定你为什么想要两个。我正在使用
[“DOM”、“es2017”、“es2018.promise”]
并且它对我有效。在
TypeScript 2.7
中,您必须添加
“esnext.promise”
而不是
“es2018.promise”
import { shim as finallyShim } from 'promise.prototype.finally'; 
finallyShim();