| 특징 | JavaScript | TypeScript |
|---|---|---|
| 타입 시스템 | 동적 타입, 변수의 타입은 런타임에 결정됨 | 정적 타입. 변수의 타입은 컴파일 시점에 결정됨 |
| 타입 안정성 | 타입 오류가 런타임에 발생할 수 있음 (낮은 타입 안정성) | 타입 오류는 대부분 컴파일 시점에 발견됨 (높은 타입 안정성) |
| 컴파일 | 인터프리터 언어로, 소스 코드가 런타임에 해석됨 | 컴파일 언어로, TypeScript 코드는 JavaScript로 컴파일되어 실행 |
| 학습 곡선 | 비교적 쉬움 | JavaScript에 비해 다소 어려움, 타입 시스템과 추가 문법을 학습 해야한다. |
| 인터페이스와 제네릭 | 지원하지 않음. | 지원함. |
| 호환성 | 모든 브라우저와 환경에서 기본적으로 지원됨. | JavaScript로 컴파일 되어야 브라우저와 환경에서 실행될 수 있음. |