no_raw_types 린트: raw 타입 피하기
no_raw_types 린트: raw 타입 피하기
제네릭(generic) 타입의 타입 인자(type argument)를 생략한 raw 타입을 쓰지 않도록 잡아주는 린트(lint) 규칙이에요. 개발자가 타입 인자가 추론될 거라 착각할 수 있지만, 실제로는 각 타입 매개변수의 bound가 사용되어 타입 정보가 유실될 수 있어요.
출처: no_raw_types
본문
설명
raw 타입을 사용하지 마세요.
raw 타입이란 제네릭 타입에 대한 타입 애너테이션(type annotation)인데 타입 인자를 생략한 형태를 말해요. 개발자들은 타입 인자가 추론될 거라고 잘못 생각할 수 있지만, 실제로는 각 타입 매개변수의 bound가 사용되기 때문에 타입 정보가 유실될 수 있어요.
BAD:
List list = [1, 2, 3];
GOOD:
List<int> list = [1, 2, 3];
이렇게 raw 타입 대신 타입 인자를 명시해 주면 타입 정보를 유실하지 않고, 코드의 의도도 분명해져요.
활성화 방법
no_raw_types 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules 아래에 no_raw_types를 추가해요.
analysis_options.yaml:
linter:
rules:
- no_raw_types
대신 YAML 맵 문법으로 린트 규칙을 설정한다면, linter > rules 아래에 no_raw_types: true라고 적어요.
analysis_options.yaml:
linter:
rules:
no_raw_types: true