关于 fp-ts-errors
fp-ts-errors 是面向 TypeScript 开发者的实用错误处理技能,帮助以类型安全方式显式表示错误。它介绍 fp-ts 的 Either 和 TaskEither 模式,将失败作为值处理,并涵盖验证错误的累积。
主要功能
- 01以 Either 表示错误值
- 02TaskEither 副作用模式
- 03为 API 定义显式错误类型
- 04累积多个验证错误
- 05重试与变更安全指引
适用场景
- 01用类型化结果替代 try/catch 流程
- 02为 API 定义显式错误
- 03收集多个输入验证错误
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill fp-ts-errors安装后在 Claude Code 中输入/fp-ts-errors确认已加载。
附带文件references/detailed-guide.md
详细介绍
使用 fp-ts 实用地处理错误
本技能将教你如何处理错误,而不陷入 try/catch 的混乱。没有学术术语,只有适用于实际问题的实用模式。
详细指南
执行本技能前,请先阅读详细指南。其中保留了完整流程和参考资料。必须遵守其中的安全要求、前置条件和验证要求。针对具体任务,请加载相关章节;要端到端完成任务,请通读整份指南。
何时使用本技能
- 需要在 TypeScript 中进行类型安全的错误处理时
- 将 try/catch 替换为 Either 和 TaskEither 模式时
- 构建需要显式错误类型的 API 或服务时
- 需要累积多个验证错误时
核心思想:错误只是数据。不要把错误抛向虚空,再寄希望于有人捕获它们,而应将错误作为值返回,让 TypeScript 能够追踪。
限制
- 仅当任务明确符合上述范围时,才使用本技能。
- 不要将输出视为环境特定验证、测试或专家审查的替代品。
- 如果缺少必需的输入、权限、安全边界或成功标准,请停止并请求澄清。
类型与副作用边界
以下内容是相互独立的片段,并非一个可编译的模块:必须提供导入、领域类型和应用辅助函数。此处的 FormData 指包含 email/password/age 字段的自定义记录,而非浏览器的 FormData 类。在使用 T.of 的地方导入 Task 并将其命名为 T,在批量处理片段中导入 Array 并将其命名为 A。fp-ts 的 Either 仍可能被忽略;返回类型并不会强制调用方检查它。map/chain 中的函数不得在显式封装的边界之外抛出异常,TaskEither 也不会自动捕获所有拒绝。
JSON 解析或 as T 只检查语法或执行类型断言,并不检查运行时结构;请使用真正的 schema 解码未知数据。认证/授权失败时,不要回退到默认用户。仅对瞬时且幂等的操作进行重试;验证尝试次数为正整数,并确保延迟有限且有上限,同时纳入 SDK 的重试和截止时间。ApplyPar 会启动所有操作,但遇到 Left 时不会取消其他操作;批量处理示例使用顺序任务,以避免并行删除不受限制。实际变更仍需进行授权、租户检查、幂等性处理和部分成功后的对账。不要在日志或 UI 中暴露原始原因、凭据或提交的密码值。未执行 TypeScript 编译或服务操作。