실행 후에야 드러나는 값 섞임
add(10, "20")
숫자 덧셈 의도가 문자열 연결로 바뀌어도 실행 전에는 놓치기 쉽습니다.
작은 예제에서는 JavaScript의 유연함이 빠르게 느껴지지만, 팀과 기능이 늘어나면 값의 의도를 코드에 남기는 편이 디버깅 비용을 줄입니다.
add(10, "20")
숫자 덧셈 의도가 문자열 연결로 바뀌어도 실행 전에는 놓치기 쉽습니다.
인자와 반환값의 모양이 코드에 없으면 호출하는 사람이 문맥을 다시 추적해야 합니다.
데이터 구조나 함수 이름을 바꿀 때 잘못된 호출이 런타임까지 남을 수 있습니다.
name: string year: number
값의 모양을 먼저 적어두면 에디터와 컴파일러가 약속 위반을 검출합니다.
TypeScript의 효과는 단순히 파일 확장자를 바꾸는 데서 나오지 않습니다. any를 줄이고, 데이터가 들어오고 나가는 경계부터 타입으로 표현할 때 유지보수성이 실제로 좋아집니다.