positional_field_in_object_pattern 진단: 객체 패턴의 필드에는 이름이 필요해요

positional_field_in_object_pattern 진단: 객체 패턴의 필드에는 이름이 필요해요

Dart 분석기가 내보내는 진단에는 이름이 있어요. positional_field_in_object_pattern객체 패턴(object pattern) 안에 getter 이름을 지정하지 않은 필드가 있을 때 분석기가 알려주는 진단이에요. 객체 패턴은 named 필드만 쓸 수 있어요.

출처: positional_field_in_object_pattern

본문

설명

분석기는 객체 패턴에 getter 이름을 지정하지 않은 필드가 들어 있을 때 이 진단을 만들어요. 객체 패턴의 필드는 객체의 getter가 돌려주는 값과 매칭을 시도해요. getter 이름이 지정되지 않으면 패턴 필드가 어떤 값을 가져와 매칭해야 할지 알 수 없어요.

예시

다음 코드는 객체 패턴 String(1)String의 어떤 getter를 접근해서 값 1과 비교해야 하는지 지정하지 않았기 때문에 이 진단을 만들어요.

void f(Object o) {
  if (o case String(1)) {}
}

흔한 해결 방법

매칭할 패턴 앞에 접근할 getter 이름과 콜론을 붙여 주세요.

void f(Object o) {
  if (o case String(length: 1)) {}
}

더 알아보기