자바스크립트의 기능은 모두 지원하면서 정적 타입을 지원하는 자바스크립트의 수퍼셋(superset).
-
자바스크립트
- 동적 타입 언어
- 변수의 type이 런타임에 결정
-
타입스크립트
- 정적 타입 언어
- 변수의 type이 컴파일타임에 결정
-
정적 타입 언어
- 진입 장벽 높음(타입 종류나 지정 등 처음부터 배울 양이 많아 일반적으로 높음)
- 코드의 양이 많을 때 생산성 높음
- 타입 오류가 컴파일 때 발견
- 예시: Java, C++, ...
-
동적 타입 언어
- 진입 장벽 낮음
- 코드의 양이 적을 때 생산성 높음
- 타입 오류가 런 타임 때 발견 -> 사용자에게 버그가 노출될 가능성이 높아짐
- 예시: Python, PHP, JS, ...
타입스크립트는 마이크로소프트가 개발하고 있고 자바스크립트가 지원하는 기능들은 빠르게 추가된다.
다른 JS 정적 타입 언어들보다 큰 생태계를 갖고 있고
마이크로소프트가 개발한 VS CODE와 궁합이 잘 맞는다.
웬만큼 유명한 라이브러리는 타입스크립트의 타입 정의 파일이 존재한다.
라이브러리에 내장되어 있거나, DefintedlyTyped 라는 깃헙 저장소에 포함되어 있다.
DefintedlyTyped에 추가된 패키지는 @types/name
처럼 앞에 @types
가 붙는다.
npm i @types/name
위와 같이 입력하면 name라는 타입 정의 파일이 설치된다.
- 런타임, 컴파일 타임: https://spaghetti-code.tistory.com/35
- 타입정의파일: https://ohgym.tistory.com/54