자바스크립트는 타입을 체킹하는 시스템이 없는 약한 타입의 언어이다.
이러한 부분이 개발의 유연성을 높이는 장점은 있지만, 런타임 환경에서의 에러가 쉽게 나타난다는 치명적인 단점이 있다.
타입스크립트는 이러한 단점의 해소를 위해 컴파일 타임에 타입을 체킹 해 치명적인 오류를 쉽게 잡아낼 수 있도록 한다.
function sum(a,b){
return a+b;
}
프로그래머는 sum 메서드의 리턴이 숫자라 의도하며 코드를 짠다.
그런데 만약 파라미터에 문자열이 전달된다면 어떻게 될까?
이 메서드를 사용하는 다른 곳에서 이를 숫자가 반환될거라 생각하고 로직을 짰을텐데 문자열이 전달된다면?
런타임 환경에서 치명적인 오류로 이어진다.
function sum(a: number, b: number){
return a+b;
}
위처럼 타입을 지정해준다면, 의도한대로 숫자가 리턴될 것이며, 숫자가 아닌 다른 타입이 파라미터로 전달되면, 컴파일 타임에 오류가 발생한다.
타입스크립트는 미리 타입을 결정하고 컴파일 타임에 이에 대한 체킹을 하여 오류여부를 던져주므로 자바스크립트에 비해 실행 속도가 매우 빠르다.
(다만, 매번 타입의 결정으로 인한 코드의 복잡도는 증가한다.)
https://typescript-kr.github.io/pages/tutorials/ts-for-the-new-programmer.html
https://www.samsungsds.com/kr/insights/TypeScript.html