TypeScript 从源码到输出经历哪些阶段,类型信息为何通常不会保留
简答题困难383 次浏览
参考答案与解析
# 核心结论
TypeScript 从源码到输出通常会经历配置解析、源码解析、语法树构建、名称绑定、模块解析、类型检查、语法转换和文件输出等阶段。它并非只做“删除类型标注”这一项工作。接口、类型别名、泛型参数、联合类型等静态类型信息主要用于编译阶段,通常不会进入最终的 JavaScript,因此静态检查不能代替对网络响应、表单输入或持久化数据的运行时校验。
# 底层机制
解析阶段把源码字符转换为语法结构,并构建抽象语法树;不符合语法规则的代码会在此阶段产生诊断。绑定阶段建立声明、符号和作用域之间的关系,并组织同名声明及可合并声明。模块解析阶段根据导入说明符、包入口和配置规则查找实际文件,从根文件扩展出完整依赖图。
