함수 타입 파라미터의 기본값

함수 타입 파라미터의 기본값

Dart analyzer가 만들어 내는 진단 중 하나로, 함수 타입과 함께 쓰이는 파라미터에 기본값이 들어 있을 때 나오는 경고예요. 이 진단의 원인이 뭔지, 그리고 어떻게 고치면 좋은지 같이 살펴볼게요.

출처: default_value_in_function_type

본문

파라미터에 연결된 함수 타입이, 기본값을 가진 선택 파라미터(optional parameter)를 포함하고 있을 때 analyzer가 이 진단을 만들어 내요.

이게 허용되지 않는 이유는, 파라미터의 기본값은 함수의 타입에 포함되지 않기 때문이에요. 타입에 속하지 않는 값을 같이 적어 봐야 아무 도움이 되지 않는 거죠.

다음 코드가 이 진단을 만들어 내는 예시예요. 파라미터 g의 타입 안에 들어 있는 파라미터 p가 기본값까지 갖고 있거든요.

void f(void Function([int p = 0]) g) {}

흔한 해결책

함수 타입의 파라미터에서 기본값만 빼 주면 돼요.

void f(void Function([int p]) g) {}

더 알아보기

  • Diagnostics — Dart analyzer가 만들어 내는 다른 진단들도 둘러보세요.