[TypeScript] 타입스크립트란?

[원본 링크]

타입스크립트는 그냥 자바스크립트 확장 언어다.
Objective-C가 C를 완전히 포함하는 것처럼 타입스크립트도 자바스크립트를 완전히 포함한다.
자바스크립트 코드를 타입스크립트로 돌려도 완벽하게 돌아간다는 뜻이다.

그리고 타입스크립트는 그 자체로는 사용할 수가 없다.
타입스크립트 코드를 타입스크립트 컴파일러로 컴파일하면, 자바스크립트 코드를 뱉는다. 이걸 쓰는 것이다.

그런데 이런걸 왜 만들었을까?
자바스크립트의 정신나간 타입 시스템과 스코프 규칙 등으로 난립하는 버그들 때문이다.

짤막하게 테스트삼아 코드를 짜는 데는 파이썬/자바스크립트같은 간단한 동적언어가 아주 편리할 수 있다.
생각없이 대충 쳐도 잘 돌아가니까.
그런데 이 널널한 동적 시스템은 규모가 아주 조금만 커져도, 온갖 버그를 떠안고 있는 시한폭탄이 되어버린다.

이 문제를 해결하고자 정적 타입 시스템과 여러 제약사항들을 강제해서 나온 것이 바로 타입스크립트다.

사실 자바스크립트의 이러한 문제 때문에 나온 언어들이 이거 말고도 꽤 된다.
구글의 Dart나 페북의 Flow, 커피스크립트 등등... 있는데.
기존의 자바스크립트와 가장 잘 융화되었고, 인지도도 높으면서, 실제로 많이 쓰이는 건 타입스크립트라고 할 수 있겠다.

게다가 기존의 js 모듈들도 타입스크립트로 많이 옮겨가는 추세라고 한다.

확실히 배워둘만한 기술이다.