extension_declares_member_of_object 진단: Object가 선언한 멤버와 같은 이름을 확장에 선언할 수 없어요

extension_declares_member_of_object 진단: Object가 선언한 멤버와 같은 이름을 확장에 선언할 수 없어요

Dart 분석기가 내보내는 진단에는 이름이 있어요. extension_declares_member_of_object확장(extension)이 Object 클래스가 선언한 멤버와 이름이 같은 멤버를 선언할 때 분석기가 알려주는 컴파일 타임 진단이에요. 그런 멤버는 결코 사용될 수 없어요.

출처: extension_declares_member_of_object

본문

설명

분석기는 확장 선언이 Object 클래스에 이미 선언된 멤버와 이름이 같은 멤버를 선언할 때 이 진단을 내보내요. Object의 멤버가 항상 먼저 발견되기 때문에 그런 멤버는 결코 사용될 수 없어요.

예시

다음 코드는 toStringObject에 정의되어 있기 때문에 이 진단이 나와요.

extension E on String {
  String toString() => this;
}

흔한 해결 방법

멤버를 제거하거나, Object의 멤버와 이름이 충돌하지 않도록 이름을 바꿔요.

extension E on String {
  String displayString() => this;
}

더 알아보기