불필요한 'noSuchMethod' 선언

불필요한 'noSuchMethod' 선언

Dart 분석기가 만들어내는 'unnecessary_no_such_method' 진단에 대한 자세한 내용입니다.

출처: unnecessary_no_such_method

본문

Description

분석기는 noSuchMethod 선언이 있고, 그 선언이 하는 일이 오버라이드된(재정의된) 선언을 호출하는 것뿐이며, 그 오버라이드된 선언이 Object에 있는 선언이 아닐 때 이 진단을 만들어냅니다. ObjectnoSuchMethod 구현을 오버라이드하는 것은(구현이 무엇을 하든) 분석기가 그 클래스에서 구현되지 않은 상속된 추상 메서드를 플래그로 표시하지 말아야 한다는 신호가 됩니다. 이는 오버라이딩 구현이 슈퍼클래스에서 상속된 경우에도 적용되므로, 서브클래스에서 다시 선언할 가치가 없습니다.

Example

다음 코드는 A에 있는 noSuchMethod 선언 때문에 B에 있는 noSuchMethod 선언이 불필요해지므로 이 진단을 만들어냅니다.

class A {
  @override
  dynamic noSuchMethod(invocation) => super.noSuchMethod(invocation);
}

class B extends A {
  @override
  dynamic noSuchMethod(invocation) {
    return super.noSuchMethod(invocation);
  }
}

Common fixes

불필요한 선언을 제거해주세요.

class A {
  @override
  dynamic noSuchMethod(invocation) => super.noSuchMethod(invocation);
}

class B extends A {}

더 알아보기

  • noSuchMethod — Dart 언어 문서에서 noSuchMethod 자세히 보기