首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类型“Promise<void>”上不存在属性“”finally“”

类型“Promise<void>”上不存在属性“”finally“”
EN

Stack Overflow用户
提问于 2018-08-29 21:49:45
回答 5查看 26.9K关注 0票数 44

我正在尝试对promise使用finally方法,但我一直收到这个错误。

代码语言:javascript
复制
Property 'finally' does not exist on type 'Promise<void>'.

我查找过类似的问题,建议将"es2018.promise“添加到tsconfig.js的"lib”数组中。这将产生以下错误:

代码语言:javascript
复制
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'.

任何帮助解决这个问题的人都非常感谢!

EN

回答 5

Stack Overflow用户

发布于 2019-02-18 19:15:50

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

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

如果使用vscode,则在将此选项添加到tsconfig.json文件后,可能应该使用reload window

票数 54
EN

Stack Overflow用户

发布于 2018-08-30 21:37:03

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

票数 8
EN

Stack Overflow用户

发布于 2018-11-21 09:02:13

虽然TypeScript 2.7可能支持它,但您需要在tsconfig.json中指定:"ESNEXT“。

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

我使用的是:

代码语言:javascript
复制
"@types/promise.prototype.finally": "^2.0.2"
代码语言:javascript
复制
import { shim as finallyShim } from 'promise.prototype.finally'; 
finallyShim();
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52079031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档