sum() 함수는 두 수를 전달받아 두 수의 합을 반환하려는 의도로 작성한 것입니다. 하지만 코드만 봐서는 매개변수 a, b가 숫자인지, 문자인지, 아니면 또 다른 제3의 타입인지 정확히 알 수 없습니다. 다음 코드와 같이 원래 의도와 다르게 문자 x, y를 sum() 함수에 전달한다면 sum() 함수는 엉뚱한 타입의 인자를 받게 되고, 반환 값 또한 의도치 않은 타입으로 출력될 수 있습니다.
의도치 않은 타입이 함수의 입력 값이 된 경우
function sum(a, b) {
return a + b;
}
sum('x', 'y'); // 'xy'가 출력되길 기대함
자바스크립트는 이를 잘못된 코드로 인식하지 못하기 때문에 오류를 표시하지 않습니다. 그래서 개발자는 함수가 의도대로 사용되지 않았다는 것을 인지하지 못한 채 넘어가게 되고, 나중에 문제가 발생했을 때 어느 부분에서 발생했는지 추측하기 어렵습니다.
하지만 타입스크립트를 사용하면 이를 예방할 수 있습니다. 인자의 타입을 미리 number로 지정해, 잘못된 타입의 인자 x, y가 들어왔을 때는, 함수가 실행되기 전 컴파일러에서 데이터 타입이 잘못됐다고 오류를 표시해 알려줍니다.