omit_obvious_property_types: 최상위·static 변수의 뻔한 타입 표기는 생략하세요
omit_obvious_property_types: 최상위·static 변수의 뻔한 타입 표기는 생략하세요
지역 변수뿐 아니라 최상위(top-level) 변수나 static 변수에서도 타입이 뻔한데 표기를 붙여 쓰는 경우가 있어요. omit_obvious_property_types는 타입이 자명한 초기화된 최상위 변수나 static 변수에 타입 표기를 붙이지 말라고 알려주는 린트(lint) 규칙이에요.
본문
상세 설명
초기화된 최상위 변수나 static 변수의 타입이 자명할 때는 타입 표기를 붙이지 마세요.
BAD:
final int myTopLevelVariable = 7;
class A {
static String myStaticVariable = 'Hello';
}
GOOD:
final myTopLevelVariable = 7;
class A {
static myStaticVariable = 'Hello';
}
다만 추론된 타입이 변수에 원하던 타입이 아닐 때가 있어요. 예를 들어 나중에 다른 타입의 값을 할당할 생각일 수 있고, 초기화 표현식의 타입이 자명하지 않아서 미래에 코드를 읽을 사람을 위해 이 타입을 문서처럼 남기고 싶을 수도 있어요. 또 특정 타입을 고정해서 가까운 코드, import, 어디든지 있는 의존성의 업데이트가 이 변수의 타입을 조용히 바꿔버린 결과로 컴파일 에러나 런타임 버그가 생기지 않게 하고 싶을 수도 있고요. 그런 경우라면 원하는 타입을 명시해 주면 돼요.
GOOD:
final num myTopLevelVariable = 7;
class A {
static String? myStaticVariable = 'Hello';
}
호환되지 않는 규칙
omit_obvious_property_types 린트는 다음 규칙과 호환되지 않아요:
always_specify_typestype_annotate_public_apis
활성화하기
omit_obvious_property_types 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules 아래에 omit_obvious_property_types를 추가해요.
linter:
rules:
- omit_obvious_property_types
대신 YAML map 문법으로 린터 규칙을 설정한다면, linter > rules 아래에 omit_obvious_property_types: true를 추가해요.
linter:
rules:
omit_obvious_property_types: true
참고로 이 규칙은 Dart 3.7에서 추가됐고 자동 수정(fix)이 제공돼요.