microsoft/Typescript
6 articles
前置知识
- ›对编译器基本概念有所了解(词法分析、语法解析、AST、类型系统)
- ›具备 TypeScript 语言的日常使用经验
- ›理解 JavaScript 闭包与模块模式
01
从万米高空俯瞰 TypeScript 编译器:架构与代码库导览
对 TypeScript 6.0 编译器代码库的全局概览——目录结构、五阶段编译流水线、核心数据结构、分层架构以及构建工具。
02
从源代码到 AST:Scanner、Parser 与节点系统
深入剖析 TypeScript 的前端编译阶段:有状态的 Scanner、递归下降 Parser、SyntaxKind 分类体系,以及 Node 类型层次结构。
03
绑定器:构建符号表与控制流图
TypeScript 绑定器如何从声明中创建 Symbol、填充层级化符号表,以及构建用于类型收窄的 FlowNode 图。
04
类型检查器:54,000 行类型理论的实践
深入 TypeScript 类型检查器——按需驱动架构、Type 层级体系、可赋值性算法、类型推断、控制流收窄,以及 Program 协调器的工作原理。
05
Emitter 流水线:转换、代码生成与声明文件
深入解析 TypeScript emitter 如何编排一系列 AST 转换器,完成代码降级、声明文件生成、emit helpers 注入以及 source map 输出。
06
语言服务与 tsserver:驱动 IDE 体验的核心引擎
TypeScript 语言服务如何将编译器封装为编辑器功能,以及 tsserver 如何通过 JSON 协议将这些能力暴露给 VS Code 和其他编辑器。