본문 바로가기
TS

타입스크립트 동작 정리

by 김대근'IT공부 2023. 8. 30.

대부분의 언어의 프로그램 실행 과정은 아래와 유사하다.

 

1. 프로그램이 AST(abstract syntax tree - 추상 문법 트리)로 파싱

2. AST가 바이트코드로 컴파일

3. 런타임이 바이트코드를 평가

 

 

타입스크립트는 자바스크립트, 자바와 같은 주요 언어들과 다른 방식으로 작동한다.

타입스크립트 컴파일러는 AST를 만들어 결과 코드를 내놓기 전에 타입 확인을 거친다 - (typechecker)

 

1. 타입스크립트 소스 -> 타입스크립트 AST

2. 타입 검사기가 AST를 확인

3. 타입스크립트 AST -> 자바스크립트 소스

4. 자바스크립트 소스 -> 자바스크립트 AST

5. AST -> 바이트코드

6. 런타임이 바이트코드를 평가

 

과정 1~3은 TSC(타입스크립트 컴파일러 - TypeScript Compiler)가 수행하며,

4~6은 브라우저, NodeJS, 기타 자바스크립트 엔진 같은 자바스크립트 런타임이 실행한다.

 

TSC가 TS code를 JS code 로 컴파일 할 때는 개발자가 사용한 타입을 확인하지 않는다.

개발자가 코드에 기입한 타입 정보는 최종적으로 만들어지는 프로그램에 아무런 영향을 주지 않으며,

타입을 확인하는 데만 쓰인다.

따라서 프로그램의 타입을 마음대로 바꾸고 개선하고 실험해도 기존 응용 프로그램은 망가지지 않는다.

 

타입 시스템 기능 자바스크립트 타입스크립트
타입 결정 방식 동적 정적
타입 자동 변환 여부 O X(대부분)
타입 확인 런타임 컴파일 타임
에러 검출 런타임 (대부분) 컴파일 타임 (대부분)

 

 

참고한 책

O'REILLY - 타입스크립트 프로그래밍

반응형