File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change
1
+ # TypeScript
2
+
3
+ ## Compiler
4
+
5
+ 1 . 개발자가 다수의 텍스트 파일을 작성
6
+ 2 . 컴파일러가 ** 파싱** 하여 ** 추상 문법 트리** (AST, abstract syntax tree) 자료구조로 변환
7
+ 3 . AST를 바이트코드(bytecode)로 변환
8
+ 4 . Runtime이 바이트코드를 평가
9
+
10
+ 타입스크립트의 컴파일러는 코드를 바이트코드 대신 자바스크립트 코드로 변환한다. 이후로는 일반적인 자바스크립트 코드를 실행하는 것과 마찬가지로 브라우저, Node.js 등으로 실행한다.
11
+
12
+ 타입스크립트 컴파일러는 AST를 만들어 결과 코드를 내놓기 전에 타입 확인을 거친다.
13
+
14
+ > TS
15
+ >
16
+ > 1 . 타입스크립트 소스 => 타입스크립트 AST
17
+ > 2 . 타입검사기가 AST를 확인
18
+ > 3 . 타입스크립트 AST => 자바스크립트 소스
19
+ >
20
+ > JS
21
+ >
22
+ > 4 . 자바 스크립트 소스 => 자바스크립트 AST
23
+ > 5 . AST => 바이트코드
24
+ > 6 . 런타임이 바이트코드를 평가
25
+
26
+ ### 타입스크립트 vs. 자바스크립트
27
+
28
+ | 타입 시스템 기능 | 자바스크립트 | 타입스크립트 |
29
+ | --------------------------- | --------------- | -------------------- |
30
+ | 타입 결정 방식 | 동적 | 정적 |
31
+ | 타입이 자동으로 변환되는가? | O | X (대부분) |
32
+ | 언제 타입을 확인하는가? | 런타임 | 컴파일 타임 |
33
+ | 언제 에러를 검출하는가? | 런타임 (대부분) | 컴파일 타임 (대부분) |
34
+
35
+ ## 코드 편집기
36
+
37
+ ### tsconfig.json
38
+
39
+ 모튼 타입스크립트 프로젝트는 루트 디렉터리에 tsconfig.json 파일이 존재한다. 어떤 파일을 컴파일하고, 어떤 자바스크립트 버전으로 방출하는지 등을 정의한다.
40
+
41
+ ### tslint.json
42
+
43
+ TSLint 설정 (탭 사용, 공백 사용 등 결정하는 코딩 스타일 규약)을 정의한다.
44
+
You can’t perform that action at this time.
0 commit comments