wrong_number_of_type_arguments_constructor 진단: 생성자에 타입 인자를 붙일 수 없어요

wrong_number_of_type_arguments_constructor 진단: 생성자에 타입 인자를 붙일 수 없어요

Dart 분석기가 만들어 내는 wrong_number_of_type_arguments_constructor 진단에 대한 설명이에요.

출처: wrong_number_of_type_arguments_constructor

본문

생성자 '{0}.{1}'은(는) 타입 파라미터가 없어요.

점 표기 축약(dot shorthand)이 생성자 '{0}.{1}'로 해석되는데, 점 표기 축약 생성자 호출에는 타입 파라미터를 적용할 수 없어요.

설명

분석기는 이름이 있는 생성자(named constructor)의 이름 뒤에 타입 인자가 제공될 때 이 진단을 만들어요. 생성자는 타입 파라미터를 선언할 수 없기 때문에 호출에서는 클래스와 연관된 타입 인자만 제공할 수 있고, 그 타입 인자는 생성자 이름이 아니라 클래스 이름 뒤에 와야 해요.

예시

다음 코드는 타입 파라미터(<String>)가 클래스 이름이 아니라 생성자 이름 뒤에 오기 때문에 이 진단을 만들어요.

class C<T> {
  C.named();
}

C f() => C.named<String>();

흔한 해결 방법

타입 인자가 클래스의 타입 파라미터를 위한 것이라면 타입 인자를 클래스 이름 뒤로 옮겨요.

class C<T> {
  C.named();
}

C f() => C<String>.named();

타입 인자가 클래스의 타입 파라미터를 위한 것이 아니라면 제거해요.

class C<T> {
  C.named();
}

C f() => C.named();

더 알아보기