본문 바로가기
개발/ESLint

ESLint 규칙 중 class-methods-use-this란?

by 좌충우돌 프레드 2024. 10. 16.
반응형

class-methods-use-this

ESLint 규칙 중 class-methods-use-this란?

class-methods-use-this 규칙은 클래스 메서드가 this 키워드를 사용하지 않을 경우 경고를 발생시키는 규칙입니다. 클래스 메서드는 일반적으로 this를 사용하여 클래스 인스턴스의 속성이나 메서드에 접근하는데, 만약 this를 사용하지 않는다면 해당 메서드를 정적 메서드로 변경하는 것이 적합할 수 있습니다.

왜 필요한가?

클래스 메서드에서 this를 사용하지 않으면 해당 메서드는 인스턴스와 독립적으로 동작합니다. 이는 코드의 가독성과 유지보수성을 저하시킬 수 있으며, 정적 메서드로 변경하는 것이 더 적합할 수 있습니다. class-methods-use-this 규칙은 이러한 상황을 감지하여 코드 구조를 더 명확하고 일관성 있게 유지하는 데 도움을 줍니다.

잘못된 예시

클래스 메서드에서 this를 사용하지 않는 경우 규칙을 위반합니다.

class Person {
  sayHello() {
    return 'Hello';
  }
}

올바른 예시

클래스 메서드에서 this를 사용하거나, this를 사용하지 않는 메서드를 정적 메서드로 변경할 수 있습니다.

class Person {
  sayHello() {
    return `Hello, ${this.name}`;
  }
}

또는

class Person {
  static sayHello() {
    return 'Hello';
  }
}

규칙 사용하기

class-methods-use-this 규칙을 활성화하려면 ESLint 설정 파일 .eslintrc에 다음과 같이 규칙을 추가해야 합니다.

{
  "rules": {
    "class-methods-use-this": ["error", { "exceptMethods": [] }]
  }
}

이 설정은 클래스 메서드에서 this를 사용하지 않을 경우 ESLint가 오류를 발생시킵니다. exceptMethods 옵션을 사용하여 예외적으로 이 규칙을 적용하지 않을 메서드를 지정할 수 있습니다.

결론

class-methods-use-this 규칙은 클래스 메서드에서 this를 사용하지 않을 때, 메서드를 정적 메서드로 바꾸는 것이 더 적합한지를 경고해 줍니다. 이를 통해 클래스 메서드의 구조가 더욱 명확해지고, 코드의 가독성과 유지보수성이 향상됩니다.

반응형

'개발 > ESLint' 카테고리의 다른 글

ESLint 규칙 중 accessor-pairs란?  (0) 2024.10.16
ESLint 규칙 중 capitalized-comments란?  (0) 2024.10.15
ESLint 규칙 중 camelcase란?  (0) 2024.10.15
ESLint 규칙 중 block-scoped-var란?  (0) 2024.10.15

댓글