关于 module-by-module-migration
module-by-module-migration 是面向 JavaScript 转 TypeScript 项目的迁移规划技能,适用于大型代码库与团队。它建议沿依赖图从叶子模块向上逐个转换,使依赖先完成类型化。
主要功能
- 01按依赖图确定迁移顺序
- 02从无依赖的叶子模块开始
- 03逐模块转换 JavaScript
- 04先类型化依赖再处理上层模块
适用场景
- 01规划大型代码库的 TypeScript 迁移
- 02安排工具函数与服务的转换次序
- 03协调团队分阶段迁移 JavaScript
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ marius-townhouse/ effective-typescript-skills --skill module-by-module-migration安装后在 Claude Code 中输入/module-by-module-migration确认已加载。
详细介绍
沿依赖图自底向上逐个转换模块
概述
将 JavaScript 迁移到 TypeScript 时,请遵循依赖图:从叶子模块(没有依赖的模块)开始,逐步向上迁移。这样可以确保转换某个模块时,它的所有依赖都已添加类型。这能最大限度地减少类型错误,让迁移更易于管理。
何时使用此技能
- 将大型代码库迁移到 TypeScript
- 将 JavaScript 转换为 TypeScript
- 在迁移过程中管理依赖
- 规划迁移顺序
- 团队采用 TypeScript
铁律
从叶子模块(没有依赖的模块)开始迁移,并沿依赖图逐步向上。这能确保依赖项在其上游模块之前完成类型化。
迁移顺序
Leaf modules (no dependencies):
- utils.js → utils.ts
- constants.js → constants.ts
- helpers.js → helpers.ts
Middle modules (depend on leaves):
- api.js → api.ts
- components.js → components.ts
Entry points (most dependencies):
- app.js → app.ts
- index.js → index.ts
示例
# 1. Convert utilities first (no dependencies)
# utils.js → utils.ts
# constants.js → constants.ts
# 2. Then services (depend on utilities)
# api.js → api.ts
# store.js → store.ts
# 3. Finally entry points (depend on everything)
# app.js → app.ts
# main.js → main.ts
参考资料
- Dan Vanderkam 著《Effective TypeScript》第 2 版
- 条目 82:沿依赖图自底向上逐个转换模块
评论
支持 Markdown