
Microsoft에 의해 개발/관리되고 있는 오픈소스 프로그래밍 언어이다.
대규모 어플리케이션을 개발하는 데 JavaScript가 어렵고 불편하다는 불만에 대응하기 위해 개발이 되었다.
TypeScript는 스크립트 언어의 표준인 ECMA Script (줄여서 ES) 의 표준을 따르기 때문에 JavaScript영역을 침범하지 않고 최신 ES를 지원한다.
JS에 없는 타입이 지원되면서 장점이 생긴다.
타입스크립트를 사용하는 가장 큰 이유는 에러를 방지할 수 있다는 점이다.
자바스크립트는 동적타이핑 언어로 프로그램이 실행되었을 때 변수에 대한 타입을 알 수 있기 때문에 코드가 의도하지 않은대로 동작할 수 있다.
간단한 예를 살펴보면 두 숫자의 합을 구하는 함수는 다음과 같이 작성할 수 있다.
function sum (a, b) {
return a + b;
}
하지만 sum 함수에 숫자 10과 20이 아닌 문자열 '10'과 '20'을 넘겨주면 30이 아닌 '1020'이라는 값이 나오게 된다.
sum('10', '20'); // 1020
이처럼 동적타이핑 언어에서는 프로그램이 실행되기 전까지 변수의 타입을 알 수 없기 때문에 의도하지 않은 결과가 나오게 된다.
sum함수를 타입스크립트로 작성하면 다음과 같이 작성할 수 있다.
function sum(a: number, b: number) {
return a + b;
}
이처럼 변수 a와 b에 number라는 타입을 지정해줌으로써 의도하지 않은 동작을 예방할 수 있다.
sum('10', '20'); // error: Argument of type 'string' is not assignable to parameter of type 'number'.