타입스크립트는 2012년에 마이크로소프트의 개발자이자 C#의 창시자로도 알려진 아주 유명한 덴마크 출신의 개발자 Anders Hejlsberg(앤더스 하일스버그)의 손에서 처음으로 탄생했습니다.
타입스크립트는 자바스크립트에 타입을 부여한 언어입니다. 자바스크립트의 확장된 언어라고 볼 수 있습니다. 타입스크립트는 자바스크립트와 달리 브라우저에서 실행하려면 파일을 한번 변환해주어야 합니다. 이 변환 과정을 우리는 컴파일(complile) 이라고 부릅니다.
자바스크립트도 충분히 복잡하고 어려운데 왜 또 다른 언어를 배워야 할까요? 단지 최신 기술이라서? 혹은 다른 회사도 많이 사용하니까 우리도 써야 하는 걸까? 라는 고민을 하게 됩니다. 타입스크립트는 아래 2가지 관점에서 자바스크립트 코드의 품질과 개발 생산성을 높일 수 있습니다.
타입스크립트는 에러를 사전에 미리 예방할 수 있습니다. 아래 2개의 코드를 비교하여 어떻게 에러를 사전에 방지할 수 있는지 살펴보겠습니다.
JavaScript
function add(a,b){
return a+b;
};
TypeScript
function add(a : number , b: number): number{
return a+b;
};
JavaScript는 동적언어 이므로, 런타입 실행시 타입이 정해집니다.
이러한 과정에서 실행 도중에 변수에 예상치 못한 타입이 들어와 Type Error가 발생하는 경우가 생길 수가 있습니다. 이를 방지하기 위하여 아래의 TypeScript 코드 처럼 미리 사전의 타입의 정의하면 에러를 사전의 방지가 가능합니다.
TS 코드를 작성할 때 개발 툴의 기능을 최대로 활용할 수 있다.
즉, TS 코드 중 함수를 작성하는 경우들이 많다. 하지만 TS는 개발자에 있어 필요한 함수들을 출력시켜주는 장점들이 있다. 그러나 JS는 이러한 부분이 많이 빈약 해보였다.
-- 해당 과정까지는 '타입스크립트 컴파일러(tsc)'에 의해 수행이 된다.
AST : 자바스크립트/타입스크립트 코드를 실행단위인 바이트코드로 변경시키기 위한 중간 자료 구조이다.
컴파일러 : 프로그래밍 언어(고급언어)를 컴퓨터가 이해 할 수 있는 기계어로 변환시키는 과정을 말한다.