Language/JavaScript

[Typescript] 타입스크립트란?

Young-Cow 2022. 2. 20. 19:29

타입스크립트란?

ECMAScript (ES)는 Ecma International에 의해 표준화된 스크립트 언어 스펙

2009년에 ES5, 2015년에 ES6 (각 ECMAScript 2015, ECMAScript 2016으로 불림)가 발표되었고

ES10(ES2019), ES2020 등이 있다.

2015년부터는 해당 연도를 버전에 사용하게 되었고, 차기 버전으로 개발되고 있는 ECMAScript는 ESNext라고 불리운다.

TypeScript는 ESNext에 Type을 추가한 것이다. 즉, ESNext의 모든 문법을 포함하면서 Type 기능을 사용할 수 있다.

누가 만들었지?

마이크로소프트에서 개발, 유지하고 있으며 엄격한 문법을 지원한다. C#의 리드 아키텍트이자 델파이, 터보 파스칼의 창시자인 Anders Hejlsberg가 개발에 참여한다.

출처

자바스크립트에 타입이 있으면?

타입스크립트는 정적 타입을 명시할 수 있다는 점이 자바스크립트와 가장 큰 차이점이다.

아래와 같은 코드를 A 개발자가 작성했다고 가정해보자.

function makeDocument(id, title, contents) {}

그런데 B 개발자가 이 코드를 이용하려고 아래와 같은 코드를 작성했지만 에러가 발생했다면, 자바스크립트에서는 이 오류가 왜 발생했는지 알기 어렵다.

makeDocument(1, "test", "test_contents")
// 함수 내부에서 id가 정수형인지, title이 문자열인지 함수 내부를 보기 전까지는 알 수 없다

하지만 타입스크립트의 타입 기능을 이용하여 아래와 같이 타입을 명시해준다면 이 문제는 발생하지 않는다.

function makeDocument(id:number, title:string, contents:string) {}

게다가, 타입스크립트 컴파일러는 이러한 타입 기능을 기반으로 코드 자동 완성이나 잘못된 변수/함수 사용에 대한 에러 원인을 알려주기 때문에 자바스크립트보다 더 선호하게 되었다.

트랜스파일

트랜스파일이란 어떤 프로그래밍 언어로 작성된 소스코드를 또 다른 프로그래밍 언어로 된 소스코드로 바꾸는 것

이런 작업을 하는 프로그램을 트랜스파일러라고 함

소스코드를 바이너리로 바꿔주는 컴파일러와 구분할 수 있지만 무엇인가를 바꿔준다는 큰 관점에서는 비슷하다.

자바스크립트 <-> 타입스크립트

ESNext 자바스크립트 소스코드는 바벨(Babel)이라는 트랜스파일러를 거쳐 ES5 자바스크립트 코드로 변환된다.

타입스크립트 소스코드는 TSC(TypeScript Compiler)라는 트랜스파일러를 거쳐 ES5 자바스크립트 코드로 변환된다.

참고 자료들

728x90
반응형