프로그래밍/JavaScript

TypeScript - 소개

가라멜 2019. 5. 6. 12:31
반응형

출처 : https://poiemaweb.com/typescript-introduction

 

TypeScript - Intro & Install | PoiemaWeb

TypeScript 또한 AltJS의 하나로써 자바스크립트(ES5)의 Superset(상위확장)이다. C#의 창시자인 덴마크 출신 소프트웨어 엔지니어 Anders Hejlsberg(아네르스 하일스베르)가 개발을 주도한 TypeScript는 Microsoft에서 2012년 발표한 오픈소스로 정적 타이핑을 지원하며 ES6(ECMAScript 2015)의 클래스, 모듈 등과 ES7의 Decorator 등을 지원한다. TypeScript는 ES5의 Superse

poiemaweb.com

 

이 포스팅의 위 출처의 게시글을 공부하며 필기 하듯이 써놓은 내용이므로,

정확한 내용은 위의 출처에서 보는 것이 좋다.

 

1. 소개

자바스크립트는 웹페이지의 보조적인 기능을 수행하기 위해 한정적인 용도로 만들어진 태생적한계로 좋은점도, 나쁜적많다.

자바스크립트가 다른 언어와 구별되는 특성은 아래와 같다.

- Prototype-based Object Oriented Language

- Scope 와 this

- 동적타입 언어 혹은 느슨한 타입언어

이 같은 특성은 클래스 기반 객체지향 언어에 익숙한 개발자를 혼란스럽게 하며 코드가 복잡해질수 있고 디버그와 테스트 공수가 증가하는 등의 문제를 일으킬 수 이어 특히 규모가 큰 프로젝트에서는 주의하여야 한다.

이같은 자바스크립트의 태생적 한계를 극복하고자 CoffeScript, Dart, Haxe와 같은 대체언어가 등장하였다.

TypeScript 또한 자바스크립트 대체 언어의 하나로써 자바스크립트의 Superset(상위확장)이다.

TypeScript 는 ES5의 Superset 이므로 기존의 자바스크립트 문법을 그대로 사용할수 있으며, ES6의 새로운기능들을 사용하기 위해 Babel 과 같은 별도 트랜스파일러를 사용하지 않아도 ES6의 새로운 기능을 기존의 자바스크립트 엔진에서 실행할 수 있다.

 

2. TypeScript 의 장점

2.1 정적 타입

TypeScript 를 사용하는 가장 큰 이유 중 하나는 정적 타입을 지원한다는 것.

function sum(a: number, b: number) {
  return a + b;
}

sum('x', 'y');
// error TS2345: Argument of type '"x"' is not assignable to parameter of type 'number'.

TypeScript 는 정적 타입을 지원하므로 컴파일 단계에서 오류를 포착할 수 있는 장점이 있다. 명시적인 정적 타입 지정은 개발자의 의도를 명확하게 코드로 기술할 수 있다. 이는 코드의 가독성을 높이고 예측할 수 있게 하며 디버기을 쉽게 한다.

 

2.2 도구의 지원

TypeScript 를 사용하는 가장 큰 장점은 IDE를 포함한 다양한 도구의 지원을 받을 수 있다는 것이다. IDE와 같은 도구에 타입 정보를 제공함으로써 높은 수준의 인텔리센스, 코드 어시스트, 타입 체크, 리팩토링 등을 지원받을 수 있으며 이러한 도구의 지원은 대규모 프로젝트를 위한 필수 요소이기도 하다.

2.3 강력한 객체지향 프로그래밍 지원

인터페이스, 제네릭 등과 같은 강력한 객체지향 프로그래밍 지원은 크고복잡한 프로젝트의 코드 기반을 쉽게 구성할 수 있도록 도우며, Java, C# 등의 클래스 기반 객체지향 언어에 익숙한 개발자가 자바스크립트 프로젝트를 수행하는데 진입 장벽을 낮추는 효과도 있다.

2.4 ES6 / ES Next 지원

브라우저만 있으면 컴파일러 등의 개발환겨 구축없이 바로 사용할 수 있는 ES5와 비교할 떄, 개발환겨 구축 관점에서 다소 복잡해진 측면이 있지만 현재 ES6를 완전히 지원하지 않고 있는 브라우저를 고려하여 Babel 등의 트랜스파일러를 사용해야 하는 현 상황에서 TypeScript 개발환경 구축에 드는 수고는 그다지 아깝지 않을 것이다. 또한 TypeScript 는 아직 ECMAScript 표준에 포함되지는 않았지만 표준화가 유력한 스펙을 선제적으로 도입하므로 새로운 스펙의 유용한 기능을 안전하게 도입하기에 유리하다.

2.5 Angular

반응형

'프로그래밍 > JavaScript' 카테고리의 다른 글

ECMA6 - 제너레이터  (0) 2019.05.05
ECMA6 - iteration & for ... of  (0) 2019.05.04
ECMA6 - Symbol  (0) 2019.05.03
ECMA6 - Promise  (0) 2019.05.01
ECMA6 - Module  (0) 2019.04.30