extension_type_declares_instance_field 진단: 확장 타입이 인스턴스 필드를 선언할 때

extension_type_declares_instance_field 진단: 확장 타입이 인스턴스 필드를 선언할 때

Dart 분석기가 내보내는 진단에는 이름이 있어요. extension_type_declares_instance_field확장 타입(extension type)의 본문에 필드 선언이 있을 때 분석기가 알려주는 컴파일 타임 진단이에요. 확장 타입은 인스턴스 필드를 선언할 수 없어요.

출처: extension_type_declares_instance_field

본문

설명

분석기는 확장 타입 선언의 본문에 필드 선언이 있으면 이 진단을 만들어요.

다음 코드는 확장 타입 Ef라는 이름의 필드를 선언하기 때문에 이 진단이 나와요.

extension type E(int i) {
  final int f = 0;
}

흔한 해결 방법

필드가 필요 없다면 필드를 삭제하거나 getter나 setter로 바꿔요.

extension type E(int i) {
  int get f => 0;
}

필드가 실제로 필요하다면 확장 타입을 클래스로 바꾸면 돼요.

class E {
  final int i;
  final int f = 0;
  E(this.i);
}

더 알아보기