一、Typescript 编译器核心
- 语法分析器(Parser):从一系列原文件开始, 根据语言的语法, 生成抽象语法树(AST)
- 联合器(Binder):使用一个
Symbol
将相同结构的声明联合在一起(例如:同一个接口或模块的不同声明,或拥有相同名字的函数和模块)。这能帮助类型系统
推导出这些具名的声明 - 类型解析器与检查器(Type resolver / Checker):解析每种类型的构造,检查读写语义并生成适当的诊断信息
- 生成器(Emitter):从输入文件(.ts和.d.ts)生成输出结果,结果可以是以下形式之一:JavaScript(.js),声明(.d.ts),或者是source maps(.js.map)
- 预处理器(Pre-processor):“编译上下文”指的是某个“程序(
program
)”里涉及到的所有文件。上下文的是通过检查所有从命令行上传入编译器的文件,按顺序,然后再加入这些文件的直接或间接引用的文件(import 和 /// <reference path=... />
引入的文件)创建的。根据引用图,你会发现它是一个有序的源文件列表,他们组成了整个程序(