질문 123 · 실전 면접 답변
타입 추론을 활용하고 언제 명시적 타입을 쓰나요?
이렇게 답해 보세요 (핵심 답변)
TypeScript는 초기값, return 문, 주변 문맥을 보고 타입을 추론하므로 단순한 지역 변수나 콜백 인자는 추론에 맡기는 편이 간결합니다. 반면 외부에서 호출하는 공개 함수의 반환 타입이나 초기값만으로 전체 후보를 알 수 없는 유니온 상태, 외부 데이터 경계에는 명시적 타입을 적는 것이 좋습니다. 이렇게 계약을 명시해 두면 내부 구현을 고치다가 실수로 반환 타입을 바꿨을 때 함수 내부에서 즉시 오류를 잡을 수 있습니다.
함께 설명하면 좋은 이유 (꼬리질문 대비)
- const mode = 'dark'는 리터럴 타입 'dark'로 좁게 추론되지만, let mode = 'dark'나 객체 프로퍼티는 변경 가능성 때문에 string으로 넓혀져(Widening) 추론됩니다.
- 함수 시그니처에 반환 타입을 명시해 두면 복잡한 조건 분기 중 한 곳에서 다른 타입을 반환했을 때 정확한 위치에서 컴파일 에러가 발생합니다.
면접에서 자주 하는 실수
let num: number = 10처럼 이미 초기값으로 자명하게 추론되는 모든 지역 변수에 타입을 중복해서 적는 것은 안전성을 높이지 못하고 가독성만 떨어뜨립니다.
원리와 예제까지 읽기
공식 참고 자료
질문 목록 출처 ↗ · 원본 123번을 바탕으로 질문과 답변을 새로 정리했습니다.