missing_required_argument 진단 — 필수 named 인자를 빠뜨렸어요
missing_required_argument 진단 — 필수 named 인자를 빠뜨렸어요
Dart 분석기가 내보내는 missing_required_argument 진단은 함수를 호출할 때 필수 named 파라미터에 해당하는 인자를 전달하지 않았다는 뜻이에요. "이 인자는 꼭 넣어야 하는데 없네요"라고 보시면 돼요.
본문
이 진단은 언제 발생해요?
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 문서를 참고해 보세요.