Promiseでfinallyメソッドを使用しようとしていますが、このエラーが発生し続けます。
Property 'finally' does not exist on type 'Promise<void>'.
Tsconfig.jsの「lib」配列に「es2018.promise」を追加することを提案した、これと同様の質問を探しました。これにより、次のエラーが生成されます。
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'.
これを解決するための助けは大歓迎です!
TypeScript 3.3.3
の場合は、es2018.promise
を次のようにtsconfig.json
-compilerOptions.lib
configに追加するだけです。
"lib": ["es2015", "es2016", "dom", "es2018.promise"]
vscode
を使用する場合は、reload window
ファイルにこのオプションを追加した後、tsconfig.json
を使用する必要があります。
TypeScript 2.7でサポートされる場合がありますが、tsconfig.jsonで「ESNEXT」をターゲットにする必要があります。
つまり、コードはおそらく古いブラウザーまたはnode.jsバージョンでは実行されません。
私は以下を使用しています: "@ types/promise.prototype.finally": "^ 2.0.2"、import {shim as finallyShim} from 'promise.prototype.finally'; finallyShim();
ES2018サポートは、 TypeScript 2.7 まで追加されませんでした。そのバージョン以降にアップグレードすると、このエラーは解決します。
これを使用してこれを修正しました https://www.npmjs.com/package/promise.prototype.finally ionic not TypeScript近い将来修正されると思います。
これを手伝ってくれたみんなに感謝します。