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. 생성자는 예외 대상입니다.
}
}
class C {
static foo() {
// OK. static 메서드는 반드시 this를 사용할 필요가 없습니다.
}
}구성
이 규칙은 다음 속성을 가진 구성 객체를 받습니다.
enforceForClassFields
type: boolean
기본값: true
함수인 클래스 필드에 대해 이 규칙을 적용합니다.
exceptMethods
type: array
기본값: []
이 규칙에서 제외할 메서드 이름 목록입니다.
exceptMethods[n]
type: object
exceptMethods[n].name
type: string
exceptMethods[n].private
type: boolean
ignoreClassesWithImplements
type: "all" | "public-fields"
기본값: null
인터페이스를 구현한 클래스를 무시할지 여부.
ignoreOverrideMethods
type: boolean
기본값: false
재정의된 메서드를 무시할지 여부.
사용 방법
구성 파일 또는 CLI를 통해 이 규칙을 활성화하려면 다음을 사용하세요:
json
{
"rules": {
"class-methods-use-this": "error"
}
}bash
oxlint --deny class-methods-use-this