불필요한 new 키워드 규칙

불필요한 new 키워드 규칙 (unnecessary_new)

인스턴스를 만들 때 굳이 new 키워드를 쓰고 있진 않은지 잡아 주는 린트 규칙이에요. 모던 Dart에서는 생성자 호출에 new가 필수가 아니거든요. 이미 오래전부터 기본이 된 관례라서, 예전 스타일에 익숙한 분들이라면 특히 눈여겨볼 만해요.

출처: unnecessary_new

본문

인스턴스를 만들 때 new 키워드는 피하세요.

먼저 좋지 않은 예를 볼게요. new A()처럼 new를 붙여서 인스턴스를 만들고 있어요.

class A {
  A();
}

m() {
  final a = new A();
}

new를 빼고 이렇게 쓰는 게 훨씬 깔끔해요.

class A {
  A();
}

m() {
  final a = A();
}

생성자 이름으로 바로 호출해도 충분하니까요.

활성화하기

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

linter:
  rules:
    - unnecessary_new

린트 규칙을 설정할 때 YAML 맵 문법을 쓰고 있다면, linter > rules 아래에 unnecessary_new: true처럼 넣어 주면 돼요.

linter:
  rules:
    unnecessary_new: true

더 알아보기

  • 이 규칙은 현재 권장(Recommended) 단계로, 자동 수정(Fix)이 제공돼요.
  • 반대 방향으로 "항상 const를 쓰자"는 prefer_const_constructors 같은 규칙과 함께 보면 생성자 스타일을 일관되게 잡아 줄 수 있어요.