JavaScriptのメソッドなどの引数で「定義はするが特に使う予定のないもの」についてはアンダースコアで表現することがある。次のように。
const f = _ => console.log("Hello, Mocchiri!");
こうすることで、ソフトウェアをチーム開発するときや、保守するときに「このメソッドではこの引数は使わなくてOKなんだな」という認識を担当者間で共有しながら作業が勧められる。
ところが、JavaScriptの文法チェッカーであるESLintは既定でこれを許してくれない。
次のような感じの文法エラーとして認識されてしまう。
error: '_' is defined but never used (no-unused-vars) at src/hogehoge.js:170:11:
169 | const f = _ => console.log("Hello, Mocchiri!");
| ^
さすがにアンダースコアの引数はOKにして欲しいよ、ということでESLintの設定ファイル eslintrc.js の文法チェックルールに次のように追記した。
module.exports = {
/* 中略 */
rules: {
"no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-unused-vars": ["error", { argsIgnorePattern: "^_$" }], // ←この行を追記
},
/* 中略 */
};
追記した行の意味は次の通り。目的に応じて微調整するとよい。
記載内容 | 意味 |
---|---|
no-unused-vars | 使われていない変数に関するルール設定 |
error | エラー判定する |
argsIgnorePattern | 例外とする(エラーにしない)引数名のパターン |
^_$ | アンダースコアだけの変数名(正規表現) |
これでESLintがアンダースコアの引数を無視してくれるようになった。