함수 타입 파라미터의 기본값
함수 타입 파라미터의 기본값
Dart analyzer가 만들어 내는 진단 중 하나로, 함수 타입과 함께 쓰이는 파라미터에 기본값이 들어 있을 때 나오는 경고예요. 이 진단의 원인이 뭔지, 그리고 어떻게 고치면 좋은지 같이 살펴볼게요.
본문
파라미터에 연결된 함수 타입이, 기본값을 가진 선택 파라미터(optional parameter)를 포함하고 있을 때 analyzer가 이 진단을 만들어 내요.
이게 허용되지 않는 이유는, 파라미터의 기본값은 함수의 타입에 포함되지 않기 때문이에요. 타입에 속하지 않는 값을 같이 적어 봐야 아무 도움이 되지 않는 거죠.
다음 코드가 이 진단을 만들어 내는 예시예요. 파라미터 g의 타입 안에 들어 있는 파라미터 p가 기본값까지 갖고 있거든요.
void f(void Function([int p = 0]) g) {}
흔한 해결책
함수 타입의 파라미터에서 기본값만 빼 주면 돼요.
void f(void Function([int p]) g) {}
더 알아보기
- Diagnostics — Dart analyzer가 만들어 내는 다른 진단들도 둘러보세요.