关于 typescript-refactor
typescript-refactor 汇集了 43 条按优先级排列的 TypeScript 重构与现代化规则,适用于开发者以及代码生成或审查流程。内容涵盖类型设计、安全性、编译器性能和常见陷阱。
主要功能
- 01涵盖 8 类的 43 条规则
- 02按影响程度排列指导
- 03类型架构与收窄模式
- 04现代 TypeScript 与泛型
- 05编译器、错误处理和运行时实践
适用场景
- 01重构 TypeScript 以增强类型安全
- 02审查代码中的 TypeScript 陷阱
- 03指导自动化代码生成
- 04提升大型代码库的编译器性能
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ shipshitdev/ skills --skill typescript-refactor安装后在 Claude Code 中输入/typescript-refactor确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
plugin.jsonassets/templates/_template.mdreferences/_sections.mdarch-avoid-partial-abuse.mdarch-branded-types.mdarch-const-assertion.mdarch-discriminated-unions.mdarch-interfaces-over-intersections.mdarch-readonly-by-default.mdarch-satisfies-over-annotation.mdcompile-avoid-deep-recursion.mdcompile-base-types-over-unions.mdcompile-explicit-return-types.mdcompile-project-references.mderror-discriminated-error-unions.mderror-exhaustive-error-handling.mderror-never-for-unreachable.mderror-result-type.mderror-typed-catch.mdgeneric-avoid-distributive-surprises.mdgeneric-constrain-dont-overconstrain.mdgeneric-infer-over-annotate.mdgeneric-mapped-type-utilities.mdgeneric-return-type-inference.mdmodern-accessor-keyword.mdmodern-const-type-parameters.mdmodern-noinfer-utility.mdmodern-template-literal-types.mdmodern-using-keyword.mdmodern-verbatim-module-syntax.md详细介绍
TypeScript 重构最佳实践
涵盖 8 个类别的 43 条 TypeScript 重构与现代化规则,按影响程度排序,帮助指导自动化重构、代码审查和代码生成。
适用场景
- 重构 TypeScript 代码,以提升类型安全性和可维护性
- 设计类型架构(可辨识联合、品牌类型、泛型)
- 收窄类型,消除不安全的
as类型断言 - 采用现代 TypeScript 4.x-5.x 特性(
satisfies、using、const 类型参数) - 优化大型代码库中的编译器性能
- 实现类型安全的错误处理模式
- 审查代码,排查 TypeScript 的特性和陷阱
按优先级划分的规则类别
| 优先级 | 类别 | 影响程度 | 前缀 |
|---|---|---|---|
| 1 | 类型架构 | 关键 | arch- |
| 2 | 类型收窄与守卫 | 关键 | narrow- |
| 3 | 现代 TypeScript | 高 | modern- |
| 4 | 泛型模式 | 高 | generic- |
| 5 | 编译器性能 | 中高 | compile- |
| 6 | 错误安全 | 中 | error- |
| 7 | 运行时模式 | 中 | perf- |
| 8 | 特性与陷阱 | 中低 | quirk- |
快速参考
1. 类型架构(关键)
arch-discriminated-unions— 使用可辨识联合替代字符串枚举,实现穷尽式模式匹配arch-branded-types— 为领域标识符使用品牌类型,避免值混淆arch-satisfies-over-annotation— 为配置对象使用satisfies,保留字面量类型arch-interfaces-over-intersections— 扩展接口而不是交叉类型,以获得更好的错误消息arch-const-assertion— 使用as const推断不可变字面量arch-readonly-by-default— 函数参数和返回值默认使用 readonly 类型arch-avoid-partial-abuse— 避免在构建器模式中过度使用Partial<T>
2. 类型收窄与守卫(关键)
narrow-custom-type-guards— 编写自定义类型守卫,而不是使用类型断言narrow-assertion-functions— 使用断言函数检查前置条件narrow-exhaustive-switch— 使用never强制实现穷尽式 switchnarrow-in-operator— 使用in运算符收窄接口联合类型narrow-eliminate-as-casts— 通过适当的收窄链消除as类型断言narrow-typeof-chains— 在访问属性前使用typeof收窄类型
3. 现代 TypeScript(高)
modern-using-keyword— 使用using关键字清理资源modern-const-type-parameters— 使用 const 类型参数推断字面量modern-template-literal-types— 使用模板字面量类型表示字符串模式modern-noinfer-utility— 使用NoInfer控制类型参数推断modern-accessor-keyword— 使用accessor自动生成 getter 和 settermodern-verbatim-module-syntax— 启用verbatimModuleSyntax,显式声明导入类型
4. 泛型模式(高)
generic-infer-over-annotate— 让 TypeScript 推断,而不是显式标注generic-constrain-dont-overconstrain— 尽可能少地约束泛型generic-avoid-distributive-surprises— 控制分布式条件类型generic-mapped-type-utilities— 为重复转换构建自定义映射类型generic-return-type-inference— 在泛型函数中保留返回类型推断
5. 编译器性能(中高)
compile-explicit-return-types— 为导出的函数添加显式返回类型compile-avoid-deep-recursion— 避免深度递归的类型定义compile-project-references— 在单体仓库构建中使用项目引用compile-base-types-over-unions— 使用基类型,而不是大型联合类型
6. 错误安全(中)
error-result-type— 使用 Result 类型,而不是抛出异常error-exhaustive-error-handling— 对类型化的错误变体进行穷尽检查error-typed-catch— 将 catch 子句变量的类型标注为unknownerror-never-for-unreachable— 使用never标记不可达的代码路径error-discriminated-error-unions— 将领域错误建模为可辨识联合
7. 运行时模式(中)
perf-union-literals-over-enums— 使用联合字面量,而不是枚举perf-avoid-delete-operator— 避免对对象使用delete运算符perf-object-freeze-const— 使用Object.freeze和as const实现真正的不可变性perf-object-keys-narrowing— 避免Object.keys导致类型拓宽perf-map-set-over-object— 动态集合优先使用Map和Set,而不是普通对象
8. 特性与陷阱(低中)
quirk-excess-property-checks— 了解对象字面量的多余属性检查quirk-empty-object-type— 避免{}类型——它表示非 nullish 值quirk-type-widening-let— 避免let声明导致类型拓宽quirk-variance-annotations— 为泛型接口使用变异注解quirk-structural-typing-escapes— 防范结构类型的逃逸机制
使用方法
阅读各个参考文件,了解详细说明和代码示例:
参考文件
| 文件 | 描述 |
|---|---|
| references/_sections.md | 分类定义和排序 |
| assets/templates/_template.md | 新规则模板 |
评论
支持 Markdown