자바스크립트는 클라이언트 단을 위한 언어로 도입되었다. Node.js의 개발로 자바스크립트는 떠오르는 서버 단 기술이 되었다.
그러나 자바스크립트 코드가 성장함에 따라, 더 거대해짐에 따라, 코드를 유지, 재사용하기가 어려워졌다.
게다가, 객체 지향의 특징, 강한 타입 체킹과 컴파일 타임 에러 체크를 포용하지 못하면 자바스크립트를 본격적인 서버 단 기술로서 엔터프라이즈급에서 성공하지 못한다. 타입스크립트는 이런 차이를 줄여주기 위해 나타났다.
타입스크립트란?
"타입스크립트는 응용프로그램 규모 개발을 위한 자바스크립트다"
타입스크립트는 강력하게 정형화되고, 객체 지향적이고, 컴파일된 언어이다. 언어와 도구의 집합이다. 자바스크립트로 컴파일된 자바스크립트의 정형화된 상위 집합이다. 자바스크립트에 추가적인 특징들이 더해진 것이다.
타입스크립트의 특징
자바스크립트로 시작해서 자바스크립트로 끝난다. 자바스크립트로부터 프로그램의 기본 빌딩 블록을 채택한다. 타입스크립트를 사용하기 위해 알아야 할 것은 자바스크립트이다. 모든 타입스크립트의 코드는 실행의 목적으로 자바스크립트와 동등하게 변환된다.
다른 자바스크립트 라이브러리를 지원한다. 컴파일된 타입스크립트는 모든 자바스크립트 코드로부터 사용될 수 있다. 타입스크립트로 생성된 자바스크립트는 모든 존재하는 자바스크립트 프레임워크, 도구, 라이브러리에 재사용될 수 있다.
자바스크립트는 타입스크립트다. 모든 유효한 .js 파일은 .ts로 재명명될 수 있고 다른 타입스크립트 파일로 컴파일될 수 있다.
타입스크립트는 이식성이 있다. 브라우저, 기기, OS에 이식이 가능하다. 자바스크립트가 동작하는 모든 환경에서 동작 가능하다. 타입스크립트는 실행을 위한 VM(Virtual Machine) 또는 특정 런타임 환경이 필요하지 않다.
타입스크립트와 ECMA스크립트
ECMA스크립트 명세서는 스크립트 언어의 표준화된 명세서다. ECMA-262의 6판이 출판됐다. 타입스크립트는 ECMA스크립트6 명세서로 정렬된다.
타입스크립트는 ECMA스크립트5 명세서로부터 기본 언어 특징을 채택한다. 예를 들어 자바스크립트를 위한 공식 명세서. 타입스크립트 언어 특징은 모듈과 클래스 기반 지향과 같이 ECMA스크립트6 명세서와 동일 선상에 있다. 추가적으로 타입스크립트는 ECMA스크립트6 명세서에 없는 제너릭과 타입 어노테이션 같은 특징을 포용한다.
왜 타입스크립트는 쓰는가?
커피스크립트, Dart 프로그래밍 언어보다 더 뛰어나다. Dart 언어, 커피스크립트는 새로운 언어이고 언어별 실행 환경이 요구된다.
타입스크립트의 장점
컴파일
자바스크립트는 인터프리터 언어이다. 그러므로 이것이 유효한지 테스트하기 위해 실행해야 한다. 출력이 없다는 것(에러)을 찾기 위해 모든 코드를 써야 한다. 코드 상의 버그를 찾기 위해 많은 시간을 써야 한다. 타입스크립트 해석기(소스 대 소스 컴파일러)는 에러 확인 특징을 제공한다. 타입스크립트는 코드를 컴파일하고 컴파일 에러를 생성한다, 만약 문법 에러를 찾는다면. 이것은 스크립트가 실행되기 전에 에러를 표시하는 데 도움을 준다.
강력한 정적 타이핑
자바스크립트는 강력한 정적 타입이 아니다. 타입스크립트는 TLS를 통한 추가적인 정적 타이핑과 타입 추론 시스템이 있다. 타입이 선언되지 않은 변수의 타입이 값에 따라 TLS에 의해 추론된다.
타입스크립트는 기존의 자바스크립트 라이브러리를 위한 타입 정의를 지원한다. 타입스크립트 definition file은 외부 JS 라이브러리를 위한 정의를 제공한다. 이런 이유로 타입스크립트 코드는 이런 라이브러리들을 포함할 수 있다.
클래스 인터페이스 상속과 같은 객체 지향 프로그래밍을 지원한다.
타입스크립트의 구성요소
핵심에는 다음 세가지 컴포넌트가 있다.
언어
언어는 문법, 키워드, 타입 어노테이션으로 이루어져 있다.
타입스크립트 컴파일러
타입 스크립트 컴파일러(TSC)는 타입스크립트로 쓰여진 명령들을 해당 자바스크립트로 변환한다.
타입스크립트 언어 서비스
"언어 서비스"는 편집기같은 응용 프로그램인 핵심 컴파일러 파이프라인 주변에 추가적인 레이어를 제공한다(뭔 소리지). 언어 서비스는 문장 완성, signature help(?), 코드 포맷팅, 아웃라이닝, colorization 등의 전형적인 에디터 작업 지원한다.
선언 파일
타입스크립트 코드가 컴파일될 때, 컴파일된 자바스크립트의 구성요소에 대한 인터페이스로 작동하는 declaration file을 생성하는 옵션이 있다. 선언 파일의 개념은 C/C++의 헤더 파일의 개념과 유사하다. 선언 파일은 타입, 함수 호출, jQuery, MooTools 등과 같은 자바스크립트 라이브러리를 위한 변수 지원에 대한 intellisense를 제공한다.
https://www.tutorialspoint.com/typescript/typescript_overview.htm
'JS > TypeScript' 카테고리의 다른 글
타입스크립트 튜토리얼 변수 (0) | 2018.12.13 |
---|---|
타입스크립트 튜토리얼 타입 (자료형) (0) | 2018.12.12 |
타입스크립트 튜토리얼 기본 문법 (0) | 2018.12.11 |
타입스크립트 튜토리얼 환경 설정 (0) | 2018.12.11 |
타입스크립트 튜토리얼 간단 소개 (0) | 2018.12.11 |