• 카테고리
  • 멤버
  • 아티클
  • 카테고리
  • 멤버
  • 깃헙
© 2020 COSADAMA,
All Rights Reserved.
Front-End

Typescript란?

by 신윤진

1. 타입스크립트란 무엇인가?


[Wonjong Oh] TypeScript #1 타입스크립트란 무엇인가?

1) 타입스크립트란?

  • 마이크로소프트(MS)가 개발하고 관리하는 오프소스 프로그래밍 언어
  • 어떤 브라우저, 호스트, 운영체제에서도 동작

  • 자바스크립트의 상위 집합 > ECMA의 최신 표준을 충분히 지원
    • ECMA 스크립트란?
      • Ecma International이 ECMA-262 기술 규격에 따라 정의하고 있는, 표준화된 스크립트 프로그래밍 언어
      • 자바스크립트를 표준화하기 위해 만들어짐
  • ES7 이하의 표준을 포함하며, '타입'이라는 특징을 가짐

  • 타입스크립트의 장점은 '정적 타입 언어(static type language)'라는 것!
    • 자바스크립트의 단점인, 타입 안정성 보장을 위해 만들어짐

2) 타입스크립트의 특징

  1. ES6 모듈 및 네임스페이스
    • ES6에서 제공하는 모듈 선언과 모듈 호출 방식을 지원
    • 네임스페이스를 지원 → 라이브러리 단위의 모듈 구성에 유리
      • 클래스가 커지고 개수가 많아질 경우, 유사한 기능의 클래스를 그룹으로 구분지을 필요가 생김
      • 네임스페이스(Namespace): 개체를 구분할 수 있는 범위. 일부 프로그래밍 언어는 범위 내에 변수와 함수를 조직한다.
  2. 클래스와 인터페이스
    • ES6의 클래스 특징을 받아들이고 인터페이스 특징을 지원 → 완전한 객체지향 프로그래밍 환경 제공
    • 전통적 객체지향 언어에서 사용하던 class, interface, extends 키워드 사용 가능
    • 기존 언어(자바)와의 차이점은 다음과 같다.
      • 다중 생성자를 선언할 수 없다.
      • 디폴트 초기화 매개변수, 선택 매개변수를 선언할 수 있다.
  3. 타입 시스템
    • 타입 시스템을 지원 → 타입 지정을 통해 (엄격한 타이핑이 적용되어) 타입 안정성을 확보!
      • 자바스크립트의 타입을 확장
      • 타입 어노테이션을 이용해 변수에 타입을 선언하는 것이 가능

3) 코어 타입스크립트 컴파일러

  • 언어 변환 기능을 수행하는 아키텍처
    • 파서(parser)
      • 읽어 들인 소스 코드를 해석 > 구문 트리 생성 > 구문 트리를 해석> 추상 구문 트리 생성
    • 바인더(binder)
      • 인터페이스 / 모듈 / 함수와 같은 모듈에 선언이 있을 경우, 이를 심벌(Symbol)로 보고 심벌 간의 규칙을 정의
    • 타입 체커(type checker)
      • 타입이 선언된 구문을 분석하고, 타입이 적절한지 체크
    • 에미터(emitter)
      • 입력된 *.ts 파일을 *.js, *.d.ts, *.js.map 유형의 파일로 생성
    • 전처리기(pre-processor)
      • 타입스크립트 파일에 선언된 import문 혹은 외부 호출 선언이 있을 때, 참조 가능한 파일을 가져와 정렬된 파일 목록을 생성
      • 파일 목록 생성 시, .d.ts.보다 .ts 파일을 우선적으로 호출
      • 즉, 컴파일러는 1) 전처리기가 생성한 파일 목록을 이용해 2) 파일을 호출하고 3) 컴파일을 수행한다.

Previous Post
딥러닝을 이용한 자연어 처리-1
Next Post
가장 쉽고 아름다운 CSS 프레임워크, Tailwind CSS
  • 코사다마
  • 소개
  • 영입
  • 관련 사이트
  • 홈페이지
  • 커리큘럼
  • 깃헙
  • 문의
  • 이메일
  • 채널톡
  • 카카오톡
  • Built with ⛰ by Peniel Cho