정적 타입과 컴파일

JavaScript와 TypeScript 차이

JavaScript는 실행하며 타입이 결정되고, TypeScript는 실행 전에 타입 관계를 검사해 의도와 다른 사용을 먼저 드러냅니다.

타입 결정

동적 타입과 정적 타입

JavaScript는 값이 흐르며 타입이 정해지고 TypeScript는 코드 작성 단계에서 타입을 확인합니다.

let count: number
실행 대상

브라우저는 JS를 실행

TypeScript 문법은 tsc나 번들러를 거쳐 JavaScript로 바뀐 뒤 실행됩니다.

tsc app.ts
피드백 위치

에디터와 컴파일러

오류를 사용자가 클릭하기 전 코드 편집기와 빌드 단계에서 발견합니다.

red squiggle
협업 효과

명시적 호출 계약

함수 시그니처가 입력과 반환을 설명해 구현 내부를 덜 열어보게 합니다.

format(date: Date)
실행 전 타입 오류는 런타임 예외가 아니라 컴파일러 메시지로 먼저 만납니다.
실행 후 타입 정보는 제거되므로 실제 런타임 검증이 필요한 값은 별도로 확인해야 합니다.
리팩토링 타입이 넓게 연결될수록 이름 변경과 구조 변경의 영향 범위를 쉽게 추적합니다.

차이는 문법의 양보다 피드백을 받는 시점에 있으며, 그 시점 차이가 유지보수 비용을 줄입니다.