タグ: ESLint

  • ESLintのルール無効化とファイル全体への適用方法【初心者向け解説+シングルトンパターンの実例付き】

    TypeScript や JavaScript で開発をしていると、ESLint から警告が出ることがあります。
    例えば、未使用の変数推奨されていない構文に対してエラーや警告を表示してくれます。これは便利ですが、開発中に一時的に無効にしたいケースも出てきます。

    この記事では、ESLint の警告の中でもよく見る @typescript-eslint/no-unused-vars を「一行だけ」または「ファイル全体」で無効にする方法を紹介します。
    加えて、ESLint が非推奨とする var を使った シングルトンパターンの実装例と、それに対するルール無効化の方法も併せて紹介します。


    1. ESLintとは?

    ESLint は JavaScript や TypeScript のコード品質をチェックする静的解析ツールです。
    未使用の変数、インデント、var の使用など、さまざまなスタイルや安全性のルールを設定できます。

    例えば、以下のようなコードを書いたとき:

    const unusedValue = 123;

    SLint は「unusedValue は使われていない」という警告を出します。
    これは @typescript-eslint/no-unused-vars というルールに基づいています。


    2. @typescript-eslint/no-unused-vars を無効にするには?

    このルールが有効になっていると、次のようなコードに警告が出ます:

    function greet(name: string) {
      // name を使わなければ警告される
    }

    一行だけ無効にする方法

    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    const unused = "This won't trigger an ESLint warning";

    ファイル全体を無効にする方法

    ファイルの先頭に以下を記述することで、そのファイル内のすべての unused-vars 警告が無効になります。

    /* eslint-disable @typescript-eslint/no-unused-vars */

    一時的に無効にして、再び有効にする方法

    /* eslint-disable @typescript-eslint/no-unused-vars */
    
    const temp = "This won't be warned";
    
    /* eslint-enable @typescript-eslint/no-unused-vars */
    
    const again = "This will trigger a warning";
    

    3. var を使ったときに出る警告と no-var のルール

    現代の JavaScript では、letconst の使用が推奨されています。
    そのため ESLint の no-var ルールが有効だと、次のような警告が出ます。

    var name = "Shota";
    // 警告:'var' declarations are forbidden. Use 'let' or 'const' instead.
    

    しかし、ES5 環境との互換性を保ちたい、あるいは教育・学習目的で var を使用したい場合もあるでしょう。


    4. var を許可するには?

    特定のファイルで var の使用を許可したい場合、ファイル先頭に以下を追加します:

    /* eslint-disable no-var */
    

    特定の行だけを無効にしたい場合は:

    // eslint-disable-next-line no-var
    var value = "Allowed just for this line";
    

    5. var を使ったシングルトンパターンの実装例

    ここからは実用的なコード例として、var を使ってシングルトンを実装する方法を紹介します。
    ES5 環境や古いブラウザをターゲットにしたい場合などに便利です。

    コード全体(ESLintのルール無効化も含む)

    /* eslint-disable @typescript-eslint/no-unused-vars */
    /* eslint-disable no-var */
    
    var Singleton = (function () {
      var instance;
    
      function createInstance() {
        var obj = new Object("I am the instance");
        return obj;
      }
    
      return {
        getInstance: function () {
          if (!instance) {
            instance = createInstance();
          }
          return instance;
        }
      };
    })();
    
    // 使用例
    var a = Singleton.getInstance();
    var b = Singleton.getInstance();
    
    console.log(a === b); // true(同じインスタンス)
    console.log(a);       // "I am the instance"
    

    6. 解説:なぜこの実装でシングルトンになるのか?

    • Singleton は即時関数(IIFE)で囲まれています。
    • instance は関数スコープ内のローカル変数なので、外部から直接アクセスできません。
    • getInstance メソッドを通じて、初回はインスタンスを生成し、2回目以降は同じものを返すようになっています。

    この仕組みにより、どこで呼び出しても 常に同じオブジェクトが返ってくるのです。


    7. ESLintのルールは柔軟に活用しよう

    ESLint はあくまで「ガイドライン」です。プロジェクトや状況に応じてルールを柔軟に無効化・変更して使いましょう。

    例えば:

    • ライブラリ開発中に一時的に未使用変数が出る
    • 古いブラウザに対応するため var を使う必要がある
    • 外部APIの仕様上、未使用に見える変数がどうしても必要

    こうした状況では、**「ルールを完全に無視する」のではなく、「必要な範囲で一時的に制御する」**ことが大切です。


    まとめ

    項目方法
    特定の行で未使用変数の警告を無効化// eslint-disable-next-line @typescript-eslint/no-unused-vars
    ファイル全体で無効化/* eslint-disable @typescript-eslint/no-unused-vars */
    var の警告を抑制/* eslint-disable no-var */
    シングルトン実装即時関数+クロージャで instance を保持

    おわりに

    この記事では、ESLint のルールを制御する方法と、JavaScript での実用的な設計パターンであるシングルトンの例を紹介しました。

    ESLint のルールをすべて守るのではなく、「なぜそのルールがあるのか」を理解した上で、適切に制御することが、柔軟で保守性の高いコードにつながります。

    今後もあなたの開発が快適でスムーズに進むことを願っています!