"컴파일러가 타입을 알 수 없을 때 ‘무엇이든 가능’으로 조용히 넘어가면 안 돼."
무엇을 잡는가
noImplicitAny가 없으면 표기도 없고 추론할 근거도 없는 함수 매개변수나 초기값 없는 변수가 조용히 any가 될 수 있어. 그 any는 이후 호출과 반환으로 퍼지며 검사를 끄지.
설정을 켜면 이런 자리가 오류가 되어 타입을 적거나 추론 가능한 구조로 고쳐야 해. 명시적인 : any는 여전히 허용되고, 이 설정은 숨어 생긴 any만 막아.
가장 중요한 엄격 설정
일곱 strict 설정 가운데 noImplicitAny가 가장 넓은 범주의 잠재적 불안전을 잡아. 느슨한 기존 코드베이스를 옮길 때 가장 먼저 켤 기반 설정이야.
마이그레이션 네 단계
- 사용 빈도가 높은 공개 API부터 타입을 붙여.
- 의존이 적은 말단 파일에서 안쪽으로 이동해.
- 당장 타입을 알 수 없는 곳은 IDE 도움으로 any를 명시해 숨은 탈출구를 보이게 해.
- 명시적 any를 실제 타입으로 차례로 교체해.
noImplicitAny는 타입 시스템이 버그를 잡는 코드와 조용히 포기하는 코드를 가르는 선이야. 항상 켜.