eslint/class-methods-use-this 制限
何を実行するか
クラスメソッドが this を使用することを強制します。
なぜ問題なのか
this を使わないクラスメソッドについては、そのメソッドを static メソッドに変更することを検討すべきです。常に可能または望ましいわけではありませんが、メソッドがインスタンスの状態に依存しないことを明確にするのに役立ちます。
もしメソッドを static 関数に変換した場合、そのメソッドを呼び出すクラスのインスタンスも、static 呼び出しに変更する必要があります。
例
このルールに対して誤りなコードの例:
js
class A {
foo() {
console.log("Hello World");
}
}このルールに対して正しいコードの例:
js
class A {
foo() {
this.bar = "Hello World"; // OK、this が使用されている
}
}
class B {
constructor() {
// OK。constructor は例外対象
}
}
class C {
static foo() {
// OK。static メソッドは this を使用する必要がない
}
}設定
このルールは以下のプロパティを持つ設定オブジェクトを受け入れます。
enforceForClassFields
type: boolean
default: true
関数型のクラスフィールドに対してこのルールを適用するかどうか。
exceptMethods
type: array
default: []
このルールの対象から除外するメソッド名のリスト。
exceptMethods[n]
type: object
exceptMethods[n].name
type: string
exceptMethods[n].private
type: boolean
ignoreClassesWithImplements
type: "all" | "public-fields"
default: null
インターフェースを実装しているクラスを無視するかどうか。
ignoreOverrideMethods
type: boolean
default: false
メソッドの上書きを無視するかどうか。
使用方法
このルールを有効化するには、設定ファイルまたは CLI を使って次のように使用できます:
json
{
"rules": {
"class-methods-use-this": "error"
}
}bash
oxlint --deny class-methods-use-this