타입스크립트는 자바스크립트의 확장 언어(superset). 변수에 선택적으로 타입을 지정해 줄 수 있고 이는 순수 자바스크립트 코드로 컴파일 된다. 즉, 타입스크립트는 정적 타입을 지원하는 자바스크립트!
function sumJS(a, b) {
return a + b;
}
sumJS(10, 20) // 30
sumJS('10', '20') // 1020 (???)
function sumTS(a: number, b: number) {
return a + b;
}
sumTS('10', '20') // ERROR : '10'은 number에 할당될 수 없습니다.
// toLocaleString : 특정 언어의 표현 방식에 맞게 숫자를 표기하는 API
function sumJS(a, b) {
return a + b;
}
var total = sumJS(10, 20);
// 개발자는 sumJS의 결과가 number로 가정한 상태에서 코드를 실행 -> ERROR ?
total.toLocaleString();
function sumTS(a: number, b: number): number {
return a + b;
}
var total = sumTS(10, 20);
// sumTS의 결과가 number라는 것을 확실히 보장받은 상태에서 코드를 실행 -> ERROR X
total.toLocaleString();
참고자료
Why You Should Choose TypeScript Over JavaScript
타입스크립트 핸드북