JavaScript
의 단점을 보완해 만든 언어, 즉 JS의 확장버전
JavaScript
는 런타임(Runtime)
시 자료형을 정하는 동적 타입 언어(dynamic type language)
이기 때문에 런타임 속도는 빠르지만 타입의 안정성이 보장되지 않는다.
이러한 JavaScript
의 특징은 자유도를 높이지만, 프로젝트의 규모가 커질수록 개발자가 예상하지 못한 오류를 발생시킨다는 단점이 있다.
function sum(a, b) {
return a + b;
}
sum(1, 2); // 3
sum("1", "2"); // 12
그래서 이러한 단점을 보완하고자 마이크로소프트(MS)
에서는 TypeScript
라는 오픈소스 프로그래밍 언어를 개발하였다.
TypeScript
는 컴파일(Compile)
시 변수의 타입이 결정되는 정적 타입 언어(static type language)
이기 때문에 컴파일 시간이 조금 더 걸리지만 안정성을 보장한다.
그래서 JavaScript
에서 사용되던 모호한 타입을 제어하여 간편하게 디버깅 에러를 해결할 수 있다.
function sum(a: number, b: number) { // 매개변수 a, b는 number타입
return a + b;
}
sum(1,2) // 3
sum('1', '2'); // Error (의도하지 않은 코드의 동작을 예방)
TypeScript
는 다음과 같은 특징을 가지고 있다.
TypeScript
는 ES7
이하의 표준을 포함하기 때문에 기존 ES5
자바스크립트 문법을 그대로 사용할 수 있다.
ES
란ECMAScript
의 약자로 뒤에 붙는 숫자는 버전을 뜻한다.
또한 ES6
의 새로운 기능들을 사용할 때는 Transpiler
가 아닌 기존의 자바스크립트 엔진을 사용하기 때문에 보다 간편하게 해당 기능들을 사용할 수 있다.
TypeScript
는 ES6
에 존재하는 Class
, Interface
특징을 지원하여 보다 완전한 객체지향 프로그래밍 환경을 제공한다.
TypeScript
의 가장 큰 특징은 Type System
을 지원하는 것이다.
TypeScript
는 기존 JavaScript
타입을 확장하고 Type Annotation
을 이용해 변수에 타입을 선언한다.
이를 통해 변수에 엄격한 타입이 적용되어 보다 높은 타입 안정성을 확보할 수 있다.
TypeScript: JavaScript With Syntax For Types.
React TypeScript Tutorial for Beginners - Codevolution
타입스크립트 입문 - 기초부터 실전까지 - 장기효