mixin_class_declares_constructor 진단: 생성자를 선언한 클래스를 mixin으로 쓸 수 없어요

mixin_class_declares_constructor 진단: 생성자를 선언한 클래스를 mixin으로 쓸 수 없어요

분석기가 내보내는 진단에는 이름이 있어요. mixin_class_declares_constructormixin으로 사용되는 클래스가 생성자를 정의하고 있을 때 Dart 분석기가 알려주는 컴파일 타임 진단이에요.

출처: mixin_class_declares_constructor

본문

설명

분석기는 클래스가 mixin으로 사용되는데, 그 mixin으로 끼워 넣은 클래스가 생성자를 정의하고 있으면 이 진단을 만들어요.

예시

다음 코드는 생성자를 정의하고 있는 클래스 A가 mixin으로 사용되고 있어서 이 진단이 나와요.

//@dart=2.19
class A {
 A();
}

class B with A {}

흔한 해결 방법

클래스를 mixin으로 바꿀 수 있다면, 그렇게 바꿔 줘요.

mixin A {
}

class B with A {}

클래스가 mixin이 될 수 없고 생성자를 제거할 수 있다면, 생성자를 제거해 줘요.

//@dart=2.19
class A {
}

class B with A {}

클래스가 mixin이 될 수 없고 생성자도 제거할 수 없다면, mixin으로 끼워 넣는 대신 클래스를 extends 나 implements 하는 방법을 써 보세요.

class A {
 A();
}

class B extends A {}

더 알아보기