Q1主动回忆难度 3
1/12
TypeScript · 高级 01
记忆强度
TypeScript高级题库第 1 组,共 12 张卡片。
TypeScript · 高级 01
可维护的React或Vue项目需要把类型检查、代码转换、模块解析、声明文件生成和运行时验证视为不同职责。
TypeScript 编译不是简单地“删除类型再输出文件”,而是由扫描、解析、绑定、类型检查、转换和生成等阶段协作完成。
条件类型通过可赋值关系在类型层面选择结果,基本形式为 T extends U ? X : Y。
映射类型负责遍历对象属性并重建结构,联合类型负责表达“多种可能之一”,交叉类型负责表达“同时满足多种要求”。
声明合并是 TypeScript 将同名且允许合并的声明组合为一个类型实体的机制,模块扩充则是在已有模块的公开声明上增加成员。
为既有的 JavaScript 库编写声明文件,本质上是对已经存在的运行时契约进行逆向建模,而不是重新设计一套更理想的接口。
TypeScript 从源码到输出通常会经历配置解析、源码解析、语法树构建、名称绑定、模块解析、类型检查、语法转换和文件输出等阶段。
条件类型负责依据可赋值关系选择分支,映射类型负责遍历属性键并重建对象结构,infer负责在条件匹配过程中提取局部类型。
声明合并是编译器把同一作用域内允许合并的同名声明组合成统一的类型或符号视图;
可靠的前端类型检查边界,需要同时约束“哪些文件参与检查、按照什么环境解析、检查严格到什么程度、检查失败能否阻断交付”。
递归工具类型不能只关注最终形状,还必须明确叶子节点、递归分支、终止条件和计算预算。
编写 TypeScript 转换器时,应使用访问者模式遍历语法树,只替换能够被准确识别的节点,并通过转换上下文提供的节点工厂创建或更新节点。