fp-refactor 是一项用于把既有命令式 TypeScript 代码重构为 fp-ts 函数式模式的技能,提供成套模式与迁移策略。
用途:帮助开发者将 try-catch、null 检查、回调、类式依赖注入、命令式循环和 Promise 链等常见写法,逐步改写为 fp-ts 的 Either、TaskEither、Option、Task、Reader 等抽象。
主要能力(资料列出的章节):
- 把 try-catch 转为 Either/TaskEither,含同步与异步模式、逐步重构指南,以及可复用的 tryCatchSync、tryCatchAsync 辅助封装。
- 把 null 检查转为 Option,包括可选属性链式访问、数组查找、Option 与 Either 之间的转换。
- 把回调转为 Task,覆盖 Node 风格回调、回调地狱改写,以及通用 fromCallback 转换器。
- 把类式依赖注入转为 Reader,示例为服务类中的 Logger、UserRepository、EmailService 依赖。
- 把命令式循环转为函数式操作,以及把 Promise 链迁移到 TaskEither。
其他内容:常见陷阱、渐进式采用策略、何时不应重构。
使用方式:资料给出的是模式与代码示例,未提供独立的安装命令或调用命令,相关安装与调用方式暂未提供。示例以 import 方式引用 fp-ts 模块并使用 pipe 组合,例如从 'fp-ts/Either'、'fp-ts/Option'、'fp-ts/TaskEither'、'fp-ts/Json'、'fp-ts/Array'、'fp-ts/function' 导入。
适用场景:需要将已有 TypeScript 项目逐步引入 fp-ts、减少隐式异常与 null 传播、让错误与可选值显式体现在类型中的重构工作。
限制:资料未说明支持的 fp-ts 版本、运行环境、性能影响或授权与收费信息;渐进式采用与不重构的判断需要结合项目实际情况,资料仅给出策略方向。