

こんにちは。

自分は、JavaScriptの var の巻き上げ問題に対処したく  
varでの変数宣言は、なるべく先頭で書こうと思い

また、開発中に変数をコメントアウトすることもよくあるので  
このような書き方をしようと思っています。  
行末に必ずカンマがくるスタイルです。

[code]

    var test01 = function () {
      var
        a,
        b,
        c,
      varend;
    
      //処理
    
    };
    
[/code]

未使用の変数varendが万人受けするとは思っていないのですが  
マイルールということにしといてください。

で、これをESLintで処理したときに、  
当たり前のなのですが、インデントの数があわないよ。  
というエラーがでます。

ここで、ESLintのルールを作成して、varendの行だけを  
除外したいのですが、  
行い方がわかりませんでした。

参考になるURLでもよいので、  
教えていただけましたら幸いです。

このライブラリで使用しています。

stsLib.js/.eslintrc.js at master · standard-software/stsLib.js  
<https://github.com/standard-
software/stsLib.js/blob/master/Source/stsLib.js/.eslintrc.js>

ESLintの使い方は、このファイルを作る程度にしか理解しておりません。

ご存知でしたら、教えてください。  
よろしくおねがいします。

* * *

## 追記：

ソースの特定行に eslint-disable-line をコメントで書く方法は rio.irikamiさん
に教えていただき、動作確認できました。ありがとうございます。

さらになのですが、自分の理想とするのは、ソースコード側にコメントを書く方法ではなく  
.eslintrc.js の方に設定を書きたくて、特定の単語を含むパターンの場合は、disable-line
などになる方法があれば、もっとよいのにな、と思っています。  
このような方法をご存じでしたら、教えてください。

var の部分だけはインデントチェックしない、というような方法も探したのですが、  
これも、なさそうでした。

自分の書き方以外にも、次のような書き方をした場合、  
eslintでインデントチェックしたくない、という場面があるように思います。  
こういうものを除外することはできないでしょうか？

[code]

    var
      a1,
      a2,
      a3,
        b1,
        b2,
        b3;
    
[/code]


CC BY-SA 3.0
2017-06-02T17:24:02.980
35233
2023-09-03T10:07:09.020
2023-09-03T10:07:09.020
19110
21047
question
javascript eslint
ESLintで、特殊なインデントでエラーが出ないようにしたい


一般にeslintの対象からあるソースコードの一部を除外する方法として、[Configuring ESLintに説明のある _Disabling Rules
with Inline Comments_](http://eslint.org/docs/user-
guide/configuring#disabling-rules-with-inline-
comments)があります。具体的には、lintをスキップする指示となるコメントをソースコードに書いておくことができます。

質問のコードでいえば、行末の単一行スキップ`// eslint-disable-line`が適当かと思われます。

[code]

    var
        a,
        b,
        c,
    varend; // eslint-disable-line
    
[/code]

その他書き方がいろいろありますので、詳細は前述のドキュメントを参照ください。

* * *

スタイルに関して蛇足ですが...

  * 「巻き上げ問題に対処」したいのであれば、varのかわりに[const](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const)/[let](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let)が有効です。ブロック冒頭の変数宣言は古いCなどに影響されたのかもしれませんが、すくなくともjsにおいては倫理的意義を除いて意味がありません。必要となるスコープで適宜const/letで宣言するほうがむしろ安全です。
  * 「開発中に変数をコメントアウトすることもよくある」とわかっているならば、 _そもそもcomma operatorを用いた変数宣言をやめる（それぞれvar/let/constをつける）べき_ です。ご提案の記法を採択するメリットが私には思いつきません。

これらはある種主観的な意見かつ質問の主旨から外れますので参考程度におねがいします。


CC BY-SA 3.0
2017-06-02T18:03:39.260
35234
2017-06-02T18:33:47.660
2017-06-02T18:33:47.660
35233
answer