타입스크립트(TypeScript)는 마이크로소프트(MS)에서 개발한 오픈소스 프로그래밍 언어이며, 자바스크립트(JavaScript)의 단점을 보완하기 위해 만들어졌다. 모든 브라우저, 호스트, 운영체제에서 동작한다.
자바스크립트는 동적 타입 언어(dynamic type language)이기 때문에 런타임 속도는 빠르지만 타입 안정성이 보장되지 않는다.
그래서 자바스크립트로 적성한 프로젝트가 커질수록 디버그하는 것이 어려워진다.
예를들어 원래 숫자 - 숫자 등이 가능하지만 자바스크립트는 아래와같이 알아서 타입이 달라도 바꿔서 결과값을 나오게 한다. (Dynamic typing)
<javscript>
5 - '3' = 2
5 + '5' = '55'
그런데 이런생각을 할 수 있다.
엥 이거 너무 편하고 좋은거 아닌가? 자바스크립트가 알아서 다 해준다는데? 오히려 좋아.
그런데 만약에 규모가 큰 프로젝트에서 천줄 만줄 아니 천줄 만줄까지 가지 않아도 백줄 이백줄만 되도 유지보수가 어려워지고 에러를 잡는다해도 자바스크립트는 에러 메세지가 추상적이고 어려워 에러를 잡기 힘들어진다.
그러나 타입스크립트는 정적 타입 언어(static type language)이기 때문에 컴파일 시 시간이 조금 걸리더라도 안정성을 보장한다는 점이 장점이다.
function foo (a:number , b:number)
return a + b
foo(5, '5')
// Typescript Type 'string' is not assignable to type 'number'
타입스크립트는 타입을 선언한다. 이것은 자바스크립트에서 모호하게 사용되던 타입을 제어할 수 있게 되어 훨씬 더 간편하게 에러를 잡을 수 있게 한다.