Angular 财产';最后';不存在于类型';承诺<;无效>';
我试图在一个承诺上使用finally方法,但我一直得到这个错误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
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?@Jettees2018
包含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();