타입스크립트란?
변수 타입을 명시적으로 지정해서 사용하는 자바스크립트.
왜 타입스크립트를 사용하는가?
타입스크립트는 정적 타입을 지원한다. 자바스크립트는 동적 타이핑(Dynamic Typing)을 한다.
이 둘의 차이는 무엇이냐면
const message = "Hello World!";
message.toLowerCase();
message(); //TypeError: message is not a function
위와 같은 코드가 있을 때 자바스크립트는 코드가 실행될 때 오류가 포착이 되고, 타입스크립트는 컴파일 단계에서 오류를 포착할 수 있다는 것이다.
복잡한 코드를 작성하다 보면 아래와 같이 작성자의 의도와 다르게 함수가 이용되는 경우가 생길 수 있다.
function sum(a, b) {
return a + b;
}
sum('x', 'y'); // 'xy'
작성자는 매개변수 a와 b가 number 타입이라고 가정하고 그 합을 구하기 위해 함수를 작성하였겠지만 사용자가 string 타입을 입력하여 함수를 사용하는 경우 뒷단계에서 예상치 못한 오류가 발생할 수 있다.
이러한 잠재적인 오류를 미처 발견하지 못하고 코드를 실행하면서 버그가 발생하면 리팩토링하거나 코드를 깊게 파헤치는 과정에서 시간이 소요될 수 있을 것이다.
하지만 해당 코드를 타입스크립트를 사용해 타입을 명시한다면
function sum(a: number, b: number) {
return a + b;
}
sum('x', 'y');
// error TS2345: Argument of type '"x"' is not assignable to parameter of type 'number'.
컴파일 단계에서 오류를 포착할 수 있으며 작성자의 의도를 명확하게 기술할 수 있다.
도움이 됐어요.