const_constructor_param_type_mismatch 진단: const 생성자의 파라미터 타입이 안 맞아요
const_constructor_param_type_mismatch 진단: const 생성자의 파라미터 타입이 안 맞아요
const_constructor_param_type_mismatch 진단은 const 생성자에 넘긴 상수 값의 런타임 타입이, 그 생성자 파라미터의 정적 타입에 할당될 수 없을 때 Dart 분석기가 알려주는 컴파일 타임 진단이에요.
본문
설명
분석기는 어떤 상수 값의 런타임 타입이 const 생성자 파라미터의 정적 타입에 할당될 수 없을 때 이 진단을 만들어요. const 식이므로 컴파일 타임에 값이 결정되는데, 타입이 맞지 않으면 컴파일 타임 오류가 되는 거예요.
예시
다음 코드는 i의 런타임 타입이 int인데, s의 정적 타입 String에 할당될 수 없기 때문에 이 진단이 나와요.
class C {
final String s;
const C(this.s);
}
const dynamic i = 0;
void f() {
const C(i);
}
흔한 해결 방법
생성자에 올바른 타입의 값을 넘기면 돼요.
class C {
final String s;
const C(this.s);
}
const dynamic i = 0;
void f() {
const C('$i');
}