파이널 프로젝트에서도 타입스크립트 기반 코드를 작성하였고 이후 추가 공부를 진행할 때도 타입스크립트에 대한 추가 공부를 진행하면서 그래도 이 타입스크립트란 기술을 "왜" 쓰는지는 알게 됐다.
자바스크립트는 빠른 사용을 위해 설계 되었고 수백만 줄의 어플리케이션들을 작성하기 위해 만들어진 얼핏 보면 '완벽한 도구' 로 보이지만
==
연산자의 예기치 않은 동작 유발 등 분명한 문제점도 가지고 있기에 명확한 정적 타입 감시가 필요했다.
타입스크립트를 채택함으로써 얻을 수 있는 효용은 다음과 같다.
아래 함수는 2개의 숫자 타입 인수를 받아 인수의 합을 리턴하는 함수로 보인다.
하지만 숫자를 전달하지 않고 문자열을 전달해도 자바스크립트는 "OK 리턴해줄게!" 라며 당연하게 값을 반환한다.
function sum(a, b) {
return a + b;
}
sum('x', 'y'); // 'xy'
반면 타입스크립트는 정적 타입을 지원하므로 컴파일 단계에서 오류를 발견할 수 있다. 이는 개발자의 의도를 명확하게 코드로 기술할 수 있다는 장점이 있으며 코드의 가독성 또한 좋아진다.
function sum(a: number, b: number) { // 각 인수가 number 타입이라는 것을 명시
return a + b;
}
sum('x', 'y');
// error TS2345: Argument of type '"x"' is not assignable to parameter of type 'number'.
타입스크립트의 인터페이스, 제네릭 등과 같은 지원은 프로젝트의 코드 기반을 쉽게 구성할 수 있게 도와준다.