omit_obvious_property_types: 최상위·static 변수의 뻔한 타입 표기는 생략하세요

omit_obvious_property_types: 최상위·static 변수의 뻔한 타입 표기는 생략하세요

지역 변수뿐 아니라 최상위(top-level) 변수나 static 변수에서도 타입이 뻔한데 표기를 붙여 쓰는 경우가 있어요. omit_obvious_property_types는 타입이 자명한 초기화된 최상위 변수나 static 변수에 타입 표기를 붙이지 말라고 알려주는 린트(lint) 규칙이에요.

출처: omit_obvious_property_types

본문

상세 설명

초기화된 최상위 변수나 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_types
  • type_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)이 제공돼요.

더 알아보기