타입스크립드는 MS에선 개발하고 관리하는 오픈소스 프로그래밍 언어로 어떤 브라웅저난 호스트, 운영체제에서도 동작하낟. 타입스크립트는 자바스크립트는 자바스크립트의 상위 집합으로서 EMCA의 최신 표준을 충분히 지원한다. 타입이하는 특징을 까지고 ES7이하의 표준을 포함하고 잇다. 타입스크립트는 ES5를 포함하는 집합이기 때문에 기존의 ES5 자바스크립트 문법ㅁ을 그대로 상용할 수 있다. 또한, ES6의 새로운 기능들을 사용하기 위해 Babel 과 같은 별도 트랜스파일러를 사용하지 않아도 ES6의 새로운 기능을 기존의 자바스크립트 엔진에서 사용할 수 있다.
특징
1. ES6 모듈 밑 네임스페이스
타입스크립트는 ES6에서 제공하는 모튤 선언과 호출 방식을 지원한다. 또한 클래스가 커지고 개수가 많아지면 유사한 기능의 클래슫을 그룹으로 구분지어야 할 필요가 생기는데 이때 타입스크립트에서는 네입스페이스를 지원하여 라이브러리 단위릐 오듈 구서에 유리하다.
2. 클래스와 인터페이스
타입스크립트는 ES6의 클래스 특징을 받아들이고ㅡ 인터페이스 특징을 지원함으로서 완전한 객체지향 프로그래민 환경을 제공한다. class, interface, extends처럼 전통적인 객체기향 언어에서 사용하던 키워드를 그대로 사용할 수 있다. 기존 언어와읭 차이를 보면 타입스크립트는 자바와 달리 디폴트 초기화 매개변수와 선택 매개변수를 선언할 수 있다.
3. 타입 시스템
타입스크립트 는 타입 시스템을 지원한다. 타입 시스템은 자바스크립트의 타입을 확장아고 타입 어노테이션을 이용해 변수에 타입을 선언할 수 있게 한다. 이렇게 타입이 지정되면 변수는 엄격한 타이핑이 적용돼 타입 안정성을 확보한다.
타입스크립트 컴파일러
parser: 읽어 들인 소스 코드를 해석해 구문 트리를 만들고, 구문 트리를 다시 해석해 추상 구문 트리를 생성한다.
binder: 인터페이스나 모듈, 혹은 함수와 같은 모듈에 선언잉 있을때 이러한 선언을 심로 보고 심벌 간의 규칙을 정의한다.
type checker: 타입이 선언된 구문을 분석하고 타입이 적절하지 체크한다.
emitter: 입력된 .ts같은 타입스크립트 파일에 선언된 Import문이나 외부 호출 선어이 있을 때 참조할 수있는 파일을 가져와 정렬된 파일 목록을 생성하낟. 파일 목고을 만들 때는 .d.ts 보다는 .ts파일을 우선적으로 호출해 가져온다. 결국 컴파일러는 전처리기로부터 생성된 파일 목록을 이용해 파일을 호출하고 컴파일을 수행한다.