field_initializer_outside_constructor 진단: 필드 형식 매개변수는 생성자에서만 쓸 수 있어요
field_initializer_outside_constructor 진단: 필드 형식 매개변수는 생성자에서만 쓸 수 있어요
Dart 분석기가 내보내는 진단에는 이름이 있어요. field_initializer_outside_constructor은 초기화 형식 매개변수(initializing formal parameter)가 생성자가 아닌 곳의 매개변수 목록에서 쓰일 때 분석기가 알려주는 진단이에요.
본문
설명
초기화 형식 매개변수가 생성자가 아닌 다른 것의 매개변수 목록에서 쓰이면 이 진단이 나와요. 필드 형식 매개변수(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;
}
}