우리가 사용하는 브라우저들은 타입스크립트를 이해하지 못한다. 결국 자바스크립트로 변환하는데, 이렇게 번거로운데 타입스크립트를 왜 쓸까?
function add(num1, num2) {
console.log(num1+num2);
}
add(); // NaN
add(1); // NaN
add(1,2); // 3
add(3,4,5); // 7
add('hello', 'world'); // 'helloworld'
add(1,2)
를 제외하고는 예상한 값이 아님에도 불구하고 예상 밖의 결과값을 주더라도 자바스크립트는 에러를 뱉지 않는다.
자바스크립트는 실행되는 시점(런타임)에 타입을 결정하고 오류를 발견
하게 된다. 개발자가 실수하면 사용자는 그 오류를 고스란히 보게 된다.
반면, 자바나 타입스크립트는 정적 언어라서 코드 작성시간이 길지만 컴파일 타임에 타입이 결정
되기 때문에 안전하게 작성할 수 있다.
function add(num1:number, num2:number) {
console.log(num1+num2);
}
add(); // error! Expected 2 arguments, but got 0.
add(1); // error! Expected 2 arguments, but got 1.
add(1,2); // 3
add(3,4,5); // error! Expected 2 arguments, but got 3.
add('hello', 'world'); // error! Argument of type 'string' is not assignable to parameter of type 'number'
이렇게 실행하기 전에 어떤 에러가 발생했는지 알아 차릴 수 있으므로 조금 더 안전하게 코드를 짤 수 있기 때문에 타입스크립트를 사용하는 것(!)