field_initializer_outside_constructor 진단: 필드 형식 매개변수는 생성자에서만 쓸 수 있어요

field_initializer_outside_constructor 진단: 필드 형식 매개변수는 생성자에서만 쓸 수 있어요

Dart 분석기가 내보내는 진단에는 이름이 있어요. field_initializer_outside_constructor초기화 형식 매개변수(initializing formal parameter)가 생성자가 아닌 곳의 매개변수 목록에서 쓰일 때 분석기가 알려주는 진단이에요.

출처: field_initializer_outside_constructor

본문

설명

초기화 형식 매개변수가 생성자가 아닌 다른 것의 매개변수 목록에서 쓰이면 이 진단이 나와요. 필드 형식 매개변수(field formal parameter)는 오직 생성자에서만 사용할 수 있어요.

예시

다음 코드는 초기화 형식 매개변수 this.x를 메서드 m 안에서 쓰고 있어서 이 진단이 나와요.

class A {
  int x = 0;

  m([this.x = 0]) {}
}

흔한 해결 방법

초기화 형식 매개변수를 일반 매개변수로 바꾸고, 메서드 본문에서 필드에 값을 할당해요.

class A {
  int x = 0;

  m([int x = 0]) {
    this.x = x;
  }
}

더 알아보기