annotate_overrides 린트 규칙

annotate_overrides 린트 규칙

메서드나 필드를 오버라이드할 때 @override 어노테이션을 달도록 안내하는 린트 규칙이에요. 이렇게 하면 코드 가독성이 좋아지고, 슈퍼클래스 멤버를 실수로 오버라이드하는 것을 막아 주는 데도 도움이 돼요.

출처: annotate_overrides

본문

DO 오버라이드하는 메서드와 필드에 어노테이션을 달아 주세요.

이런 관행은 코드 가독성을 높이고, 슈퍼클래스 멤버를 의도치 않게 오버라이드하는 것을 막아 주는 데 도움이 돼요.

BAD:

class Cat {
  int get lives => 9;
}

class Lucky extends Cat {
  final int lives = 14;
}

GOOD:

abstract class Dog {
  String get breed;
  void bark() {}
}

class Husky extends Dog {
  @override
  final String breed = 'Husky';
  @override
  void bark() {}
}

Enable

annotate_overrides 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules 아래에 annotate_overrides를 추가해 주세요:

linter:
  rules:
    - annotate_overrides

대신 YAML 맵 문법으로 린터 규칙을 설정한다면, linter > rules 아래에 annotate_overrides: true를 추가하면 돼요:

linter:
  rules:
    annotate_overrides: true

더 알아보기