web-dev-qa-db-ja.com

jslint --edition = latest予期しないES6機能。 const

Node-jslintを使用しようとしています https://github.com/reid/node-jslint コードをクリーンに保つために

Nodejsスクリプトにconstがありますが、jslintはそれが有効なES6コードではないと言います

 Unexpected ES6 feature.
const pdPersonsFilterId = process.argv[2]; // Line 10, Pos 0

コンソールで使用するコマンドは次のとおりです

jslint --edition=latest index.js

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const によれば、グローバル定数を使用できます。

Jslintがこのコードを有効と見なさないのはなぜですか?

17
Nikage

JSLintはES6に十分満足しています。 ES6を使用していることを知らせる必要があります。 es6ディレクティブをJSLint設定に追加するか、ファイルの上に配置して利益を得ます。

/*jslint es6 */
const pdPersonsFilterId = process.argv[2];

今、あなたが見た警告は消えます。

JSLintのヘルプ から:

ECMAScript [ES6]の第6版が普及するまでには時間がかかる場合があります。新しい標準を完全に実装していない環境で新しい機能を使用すると、失敗します。これが、ES6機能が使用されているときにJSLintが警告を出す理由です。 ES6の機能の一部は優れているため、JSLintはes6オプションを使用してES6の優れた部分を認識します。新しい標準の実装がより安定し、より良くなるにつれて理解すると、JSLintによって認識される一連の機能が増加する可能性があります。 ES6への移行が完了すると、es6オプションは削除されます。[emph mine]

十分に公平だ。あなたが見たのは、ES6がサポートされていない場合、今持っているものが機能しない可能性があることを警告しているだけです。 ES6がより広く普及すると-、またはES6を使用するつもりであることをCrockfordに明示的に知らせると-警告は消えます。 (TJのポイントは、少なくともNodeでは、警告を削除する時間は今だということかもしれません。; ^ D)

16
ruffin

ESLint を試してください。

[〜#〜] npm [〜#〜] のより良い統計があり、ドキュメントは素晴らしいですし、広く使われています。

12
czerasz