정의 📖
타입스크립트 코드를 분석하여 타입 정의 파일(.d.ts) Or 소스맵(.js.map) + 자바스크립트 파일 (*.js) 로 컴파일 한다.
d.ts vs .ts
module 키워드를 통해, 절대 경로로 임포트 하여 사용할 수 있다.
보통 -> ./src/@types 컨벤션을 갖는다
ts.config에 typesRoots속성을 정의합니다.
"TSC" 명령어를 누르면 동작하는 플로우
tsconfig 읽기: 타입스크립트 프로젝트라면, root에 tsconifg.json을 읽는 작업부터 시작할 것이다.
preprocess: 파일의 root 부터 시작해서 imports로 연결된 가능한 모든 파일을 찾는다.
preprocess: 파일의 root 부터 시작해서 imports로 연결된 가능한 모든 파일을 찾는다.
tokenize & parse: .ts로 작성된 파일을 신택스 트리로 변경한다.
AST(abstract syntax tree) 이를 위해 필요한 것이 scanner, parser 이다
Binder (binder.ts)
const message: string = 'Hello, world!'
welcome(message)
function welcome(str: string) {
console.log(str)
}
Scanner (scanner.ts)
Parser (parser.ts)
identifier (name)
StringKeyword (type)
StringLiteral (initializer)
Checker (checker.ts)
transform: 신택스트리를 tsconfig에서 읽었던 옵션에 맞게 변경한다.
Emitter (emitter)
emitter의 역할은 신택스 트리를 읽어서 파일로 리턴하는 것이다.
신택스 트리를 .js .d.ts파일 등으로 변경한다.
-> .js .map .d.ts를 만들어냄
const message: string = 'Hello, world!'
const
message
:
string
=
"Hello, world!"
AST(abstract syntax tree) 라고 한다.
이를 위해 필요한 것이 scanner, parser 이다