타입스크립트
는 자바스크립트의 어렵고 불편한 점을 개선하기 위해 자바스크립트에서 확장된 언어 입니다.
타입스크립트는 ES5을 포함하는 언어이기에 기존 ES5의 문법을 그대로 사용할 수 있으며, ES6의 새로운 기능을 기존의 자바스크립트 엔진에서 사용할 수 있습니다.
타입스크립트의 장점은 정적 타입 언어(static type language)
라는 점입니다. 기존 자바스크립트는 동적 타입 언어(dynamic type language)
이기에 런타임 시간을 짧았지만 안전성이 보장되지 않는다는 단점이 있었습니다.
function sum(a, b) {
return a + b;
}
위의 함수는 아마 두개의 숫자 타입 인수를 전달받아 더한 값을 리턴하는 기능을 하기위해 만들어졌다 라고 추측할 수 있습니다. 하지만 정확히 어떤 타입의 인수를 전달 받아야 하는지 어떤 타입을 리턴해야 하는지 정확히 명시 되어있지 않습니다.
sum('10', '20'); // 1020
위의 코드는 자바스크립트의 문법상 아무런 문제가 되지 않습니다. 하지만 함수가 의도한 바와는 전혀 다른 리턴값이 도출되었습니다. 이는 변수나 반환값의 타입을 사전에 정하지 않는 동적 타입 언어
의 특성에 의한 것입니다.
위 함수를 정적 타입 언어
인 타입스크립트를 이용하여 다시 작성해 보겠습니다.
function sum(a: number, b: number) {
return a + b;
}
sum('10', '20'); // Error
이처럼 타입스크립트는 정적 타입 언어 이므로 컴파일 과정에서 오류를 포착할 수 있는 장점이 있습니다.
정적 타입 언어
는 개발자의 코트의 가독성을 높이고 예측할 수 있게 하며 디버깅을 쉽게 만들어주는 장점이 있습니다.
https://medium.com/@wonjong_oh/typescript-1-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-f4b02f54009c
https://velog.io/@taeg92/TypeScript-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0