'==' 연산자의 매개변수 타입은 non-nullable 이어야 해요

'==' 연산자의 매개변수 타입은 non-nullable 이어야 해요

== 연산자를 오버라이드할 때, 그 매개변수의 타입이 nullable 일 때 분석기가 알려주는 진단이에요.

출처: non_nullable_equals_parameter

본문

== 연산자를 오버라이드했는데 그 매개변수의 타입이 nullable 이면 이 진단이 발생해요. 언어 명세상 이 메서드의 인자는 null 이 될 수 없도록 되어 있어서, 매개변수의 타입도 그 사실을 반영해야 해요.

아래 코드는 C== 연산자 구현 때문에 이 진단이 나와요.

class C {
  @override
  bool operator ==(Object? other) => false;
}

고치는 방법

매개변수 타입을 non-nullable 로 만들어 주면 돼요.

class C {
  @override
  bool operator ==(Object other) => false;
}

더 알아보기

  • 연산자 오버라이드와 Equatable 패턴에 대한 자세한 내용은 Dart 공식 문서의 operators 자료를 참고해요.