missing_required_argument 진단 — 필수 named 인자를 빠뜨렸어요

missing_required_argument 진단 — 필수 named 인자를 빠뜨렸어요

Dart 분석기가 내보내는 missing_required_argument 진단은 함수를 호출할 때 필수 named 파라미터에 해당하는 인자를 전달하지 않았다는 뜻이에요. "이 인자는 꼭 넣어야 하는데 없네요"라고 보시면 돼요.

출처: missing_required_argument

본문

이 진단은 언제 발생해요?

analyzer는 어떤 함수를 호출할 때 필수 named 파라미터(required)가 빠졌을 때 이 진단을 내보내요. 파라미터 이름이 {required ... }처럼 필수로 지정되어 있는데, 호출 쪽에서 그 값을 안 줬다는 신호예요.

예시를 볼까요?

아래 코드에서 f를 호출할 때 필수 named 파라미터 end에 해당하는 값을 넣지 않아서 이 진단이 발생해요.

void f(int start, {required int end}) {}
void g() {
  f(3);
}

어떻게 고치면 돼요?

빠진 필수 파라미터에 해당하는 named 인자를 추가해 주면 돼요.

void f(int start, {required int end}) {}
void g() {
  f(3, end: 5);
}

무엇이 포인트예요?

named 파라미터는 이름(end:)을 붙여서 전달해야 하니, start처럼 위치 인자만 넣고 end를 빼버리는 실수를 조심하면 돼요. required가 붙은 파라미터는 반드시 호출부에서 채워줘야 해요.

더 알아보기

  • named 파라미터와 required의 자세한 규칙은 Functions 문서에서 확인할 수 있어요.
  • Dart 분석기 진단 전체 목록은 Diagnostics 문서를 참고해 보세요.