파라미터는 `var`로 쓰고 타입을 생략하지 마세요

파라미터는 var로 쓰고 타입을 생략하지 마세요

파라미터를 선언할 때 var만 쓰고 타입을 붙이지 않는 코드, 본 적 있죠? 그런데 이런 모습은 앞으로 컴파일 에러가 될 수 있어요. 지금 미리 잡아 두면 마이그레이션이 훨씬 편해져요.

출처: var_with_no_type_annotation

본문

var로 파라미터를 선언하고 타입 주석을 붙이지 않는 것은 피하는 편이 좋아요. 형식 파라미터를 var를 쓰고 타입 주석 없이 선언하면, primary constructor(주 생성자)가 활성화됐을 때 컴파일 타임 에러가 돼요. 이 린트는 그런 파라미터를 미리 표시해서 마이그레이션을 쉽게 만드는 데 도움을 줘요.

좋지 않은 코드:

void func(var x) { // LINT
  print(x);
}

좋은 코드:

void func(String x) { // OK
  print(x);
}

forEach의 콜백에서도 마찬가지예요.

좋지 않은 코드:

[1, 4, 6, 8].forEach((var value) => print(value + 2)); // LINT

좋은 코드:

[1, 4, 6, 8].forEach((value) => print(value + 2)); // OK

여기서는 타입을 추론할 수 있으니 그냥 value라고 써 주면 돼요.

이 규칙 켜는 법

var_with_no_type_annotation 규칙을 켜려면 analysis_options.yaml 파일의 linter > rules 아래에 규칙을 추가하면 돼요.

linter:
  rules:
    - var_with_no_type_annotation

YAML 맵 문법을 쓴다면 이렇게 해 주면 돼요.

linter:
  rules:
    var_with_no_type_annotation: true

더 알아보기