JavaScriptプロジェクト(およびVisual Studio Code)にJSHintを使用しています。そして、このプロジェクトではasync/awaitを使用しますが、これはJSHintがエラーとして強調しています。
Jshintをセットアップしようとしましたが、「esversion」の格言バージョンは6のようです。
Jshintはまだasync/awaitをサポートしていますか?もしそうなら、それをオンにする方法は?そうでない場合、回避策はありますか?
更新(2019年2月):バージョン2.10.1からAsync/awaitがサポートされるようになりました。
"esversion": 9
を使用するように.jshintrcを更新するだけです。 (+情報: バージョン変更ログ )
更新(2018年7月):Async/awaitは、JsHint 2.10.0のリリースとともに届きます。 +情報: https://github.com/jshint/jshint/pull/327
JSHINT開発コミュニティは、次のことを考慮しています。
- JSHINTは、ES7機能の実装を開始する前に、最初にすべてのES6構文をサポートする必要があります。
- 非同期関数はステージ1のみにあるため、構文は大きく変わる可能性があります
ただし、JSHINT-ESNEXTと呼ばれるawait/asyncの実験的サポートを含む非公式のJSHINTパッケージがあります。
著者の@ marcominetti は、公式のJSHint 2.7 Masterブランチを使用し、 Seb Vincent esnextnext ブランチから取得したこのES7機能を導入しました。
Npm Package 、および githubのソース を確認してください
インストール:$ npm install -g jshint-esnext
現在(2017年7月)これは、JSHINTでawait/asyncをサポートする唯一の適切なアプローチです。
推奨される一般的な回避策または軽減策は、JSHINT無視ディレクティブを使用することです。
// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be ignored by JSHint.
/* jshint ignore:end */
または:
ignoreThis(); // jshint ignore:line
私の個人的には、コードに大量の非同期/待機参照が含まれている場合、この軽減策は汚くて混乱を招くことに気付きます。しかし、もっと混乱して汚いのは、JSHINTの警告とエラーです;)
Jshintはまだasync/awaitをサポートしていますか?
いいえ、まだ2017年初頭ではありません。
async/await
をまだサポートしていないようです。 jsHintに取り組んでいる人々は、標準が後期段階になるまで(まだ変化しているときに早すぎることをサポートすることで以前は焼けていたように)async/await
をサポートしないことに決めました-実装は既に存在します(Babel、nodejsなど) ..)。
この jsHint未解決スレッド に従うと、それは7日前と11日前の最近のコメントの時点で未解決の問題です。
そうでない場合、回避策はありますか?
2017年7月の時点で、ここでasync/awaitをサポートするjshint-esnextと呼ばれるjsHintコードの分岐があるようです: https://www.npmjs.com/package/jshint-esnext 。
OPは、回避策があるかと尋ねました。それはちょっとしたことですが、すべての「async」または「await」を「async/** /」および「await/** /」に置き換えました。次に、それらを「/ * async * /」と「/ * await * /」にスワップする簡単なスクリプトを使用して、jshintで確認できます。
それはきれいではありませんが、ブルドッグを養います。