mcpField
F
fp-ts-errors

fp-ts-errors

github.com/sickn33开发48.7k71 次安装今天更新
代码仓库

关于 fp-ts-errors

fp-ts-errors 是面向 TypeScript 开发者的实用错误处理技能,帮助以类型安全方式显式表示错误。它介绍 fp-ts 的 Either 和 TaskEither 模式,将失败作为值处理,并涵盖验证错误的累积。

主要功能

  1. 01以 Either 表示错误值
  2. 02TaskEither 副作用模式
  3. 03为 API 定义显式错误类型
  4. 04累积多个验证错误
  5. 05重试与变更安全指引

适用场景

  1. 01用类型化结果替代 try/catch 流程
  2. 02为 API 定义显式错误
  3. 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 编译或服务操作。

评论

支持 Markdown