프로그래밍 언어의 동작 원리
TypeScript의 동작 원리에 들어가기 앞서 기존 프로그래밍 언어의 동작 원리를 살펴보자.
많은 사람들이 알다시피 컴퓨터는 바이트코드, 이진수 등 단순한 형태의 언어를 이해하고 실행한다. 따라서 프로그래밍 언어를 컴퓨터가 바로 이해하고 실행할 수는 없다. 따라서 컴퓨터가 해석하기 쉬운 형태로 변환하는 과정이 무조건적으로 필요한데, 이를 컴파일이라고 한다.
그럼 JavaScript의 컴파일 과정을 살펴보자.
컴파일러를 통해 코드를 바로 바이트코드로 변환하는 것이 아닌 AST(추상 문법 트리)라는 형태로 변환한다.

AST란 코드의 공백이나 주석 택 등의 코드 실행에 관계 없는 요소를 제거하고 트리 형태의 자료구조에 코드를 쪼개서 저장해 놓은 형태다.
이후에 이 AST를 바이트코드로 변환하고 컴파일이 종료된다.

TypeScript의 동작 과정
TypeScript는 JavaScript에 타입 안정성을 더한 언어다. 하지만 브라우저나 Node.js에서 직접 실행되는 언어는 여전히 JavaScript다.
즉, TypeScript 코드는 직접 바이트코드로 변환되어 실행되는 것이 아니라, 먼저 JavaScript 변환되는 과정을 거친다.
이후 변환된 JavaScript 코드가 JavaScript 엔진(V8 등)에 의해 바이트코드로 컴파일되어 실행된다.

다시 말해, TypeScript → JavaScript → 바이트코드 → 실행이라는 단계로 동작하는 것이다.
이러한 구조 덕분에 TypeScript는 JavaScript와 완벽한 호환성을 유지하면서도, 정적 타입 검사라는 장점을 추가로 제공할 수 있는 것이다.
출처 : 한 입 크기로 잘라먹는 타입스크립트(TypeScript) - 이정환 Winterlood