SuperAPI AI 工具集

typescript-refactoring-patterns

编程与开发

查看项目

更新于 10-16 05:00

技能介绍

用途:这是一套 TypeScript 重构模式参考,用于把类型不安全的代码改造成更清晰、更类型安全的形式,适合在代码审查、重构和类型设计时查阅。

核心原则:优先使用类型守卫与可辨识联合而非 as 断言;用 as const 定义不可变字面量类型;用 extends 泛型约束替代 any;用品牌类型做领域特定校验。

主要重构模式:

  1. 提取可辨识联合:当出现多个布尔标志(如 isAdmin、isGuest)时,改为带 role 字段的联合类型,让非法状态无法表示。
  2. 用多态替换条件判断:对基于类型的 switch 语句,改用策略模式,例如用 Record<ItemType, (item: Item) => Result> 映射处理器,再通过 processorsitem.type 调用。
  3. 提取类型守卫:编写可复用守卫,如 function isNonNullable<T>(value: T): value is NonNullable<T>,配合 array.filter(isNonNullable) 使用。
  4. 用品牌类型做校验:通过 type UserId = string & { readonly brand: unique symbol } 等方式避免原始类型滥用,并在构造函数中校验后返回。

代码异味检测:关注 any 类型(改用 unknown 加类型守卫)、非空断言 !(补充检查)、类型断言 as(改用类型守卫)、过度可选链 ?.?.?.(重构数据结构)、无校验的索引签名。

快速改进:在 tsconfig 中启用 strict: true;用 satisfies 做类型检查而不拓宽类型;优先使用 readonly 数组与对象;外部数据用 unknown 并在边界处校验。

限制:资料未提供安装命令、运行环境、版本要求、收费方式或具体工具集成说明,暂未提供相关信息。