var_with_no_type_annotation 진단: 매개변수에 타입 없이 `var`를 쓰지 마세요
var_with_no_type_annotation 진단: 매개변수에 타입 없이 var를 쓰지 마세요
var_with_no_type_annotation은 매개변수를 타입 표기 없이 var 키워드로 선언할 때 Dart 분석기가 내보내는 진단이에요. 이런 패턴은 피해야 해요.
본문
설명
분석기는 매개변수가 타입 표기 없이 var 키워드로 선언될 때 이 진단을 만들어요.
이 패턴은 피해야 해요. Dart의 미래 버전에서는 컴파일 타임 오류가 될 가능성이 높기 때문이에요. 게다가 명시적 타입 없이 var를 쓰면 매개변수의 타입이 dynamic이 되어 그 매개변수에 대한 정적 타입 검사가 꺼져 버려요.
예시
다음 코드는 매개변수 x가 var로 선언되었기 때문에 이 진단을 만들어요.
// @dart=3.12
void f(var x) {
print(x);
}
다음 코드는 초기화 형식 매개변수 x가 var로 선언되었기 때문에 이 진단을 만들어요.
// @dart=3.12
class C {
int x;
C(var this.x);
}
흔한 해결 방법
매개변수의 원하는 타입을 안다면 var를 타입 표기로 바꿔요.
void f(String x) {
print(x);
}
특정 타입을 모르거나 원하지 않는다면 var를 Object?나 dynamic 타입으로 바꿔서 더 구체적인 타입이 없다는 사실을 명시적으로 드러내요.
void f(Object? x) {
print(x);
}