2017-01-16 12 views
0

今私が持っている場合:JSHintで不要なセミコロン警告を有効にするにはどうすればよいですか?

console.log; 

私はJSHintからの警告を得ることはありません。私は不必要にセミコロンを使用しないという標準を使い始めたいのですが、JSHintから少し助けていただきたいと思います。不必要なセミコロンの使用を警告するためのサポートされた方法はありますか?

参照:https://www.codecademy.com/blog/78

それは私が代わりにJSLintを使用することをお勧めしますが、JSLintは、私が使用することを希望されないタブ上のスペースを強制します。

+2

「不必要にセミコロンを使用しない新基準は、」あなたは、この上で手の込んだことはできますか?あなたはこれをどこで聞いたのですか? – LINKIWI

+0

@LINKIWI https://github.com/feross/standard/blob/master/RULES.md#automatic-semicolon-insertion-asi – Citizen

答えて

0

すべてのオプションを読み終えたら、JSHintでこれを有効にする方法が見つかりません。

その後、私が実際に何をしているのかを標準JSにもっと読んだら、彼らは私が探していた原子のための独自のリンターを持っています。

https://atom.io/packages/linter-js-standard

2

業界標準ではなく、あなたの会社が採用した新しい標準を意味しない限り、いわゆる「JavaScript標準スタイル」を指しているのは「新しい標準」ではありません。それはただ一つの男の誤った個人的な標準です。

どちらかといえば、ES6はセミコロンを省略しないより理由から導入されています。二行目は、配列の非構造である

a = b 
[x, y] = [1, 2] 

を。

これは、あなたが望むものは確かではありません

a = b[x, y] = [1, 2] 

として解析されます。 「標準」は、私が今までに見た中で最も醜いものの1つであることを示唆しています。

a = b 
;[x, y] = [1, 2] 

セミコロンを入れる必要がある場合は、セミコロンを所属する行の上に置いてみましょう。

上記のパラメータとして関数を通過しようと

a = b(function(foo() { }()) 

として解析されるであろう有名

a = b 
(function foo() { }()) 

含むASIが失敗したすべてのよく知られた場合、他にあります機能b

必要がないため、jshintで必要なものはありません。 「不必要なセミコロン」は、リンターによって取り出される必要があるエラーではありません。

壊れた「標準」をサポートするためにカスタムリンターを使用するのは恐ろしい考えです。あなたはjshintとeslintのような賢明なリンターで起こっているすべての革新を見逃すでしょう。あなたのカスタムリンターが1つの特定のエディターでしか動作しない場合は、これ以上です。あなたのチームの誰かが崇高なテキストを使いたい場合はどうなりますか?

セミコロンを使わないようにすることを強くお勧めします。 github JS reposの調査では、このアプローチを使用した割合は1桁になっています。あなたがそれをしている間、タブからスペースに移動することもできます。同じ調査では、スペースは圧倒的に一般的な実践であることが示されています。

もちろん、上記のいずれも、そのような

が不要あり、リンターは、一般的にピックアップします。
a = b;; 
function foo() { }; 

として真に不要セミコロン、を意味しません