正在打开每日关注
正在打开每日关注
better-result 3.0 引入校验编解码、集合组合、可取消重试与 TaggedError 改进。
better-result 3.0 is now available npm i better-result@3 highlights below https://t.co/TM6KbNSGxs
是什么 这是一则 better-result 3.0 的版本发布公告,核心对象是 TypeScript/JavaScript 中用于表达成功与失败的 Result 抽象。更新集中在四条链路:用 Result.codec 替换旧的未校验序列化辅助函数,并兼容 Standard Schema;用 all、allAsync、partition 简化并发、异构结果的收集与拆分;增强 tryPromise 的 AbortSignal、延迟取消、动态延迟、抖动和按尝试次数判断;改进 TaggedError 的实例级穷尽匹配、迭代能力与语法。
核心设计 它把“错误是返回值而非异常分支”的思路继续向边界推进:codec 负责领域类型与线协议之间的显式验证,集合组合器负责批量流程,重试上下文负责可控异步策略,TaggedError 与 Result.gen 则强化可读、可组合的错误传播。整体方向是把运行时不确定性收束到类型和组合 API 中。
关键洞察 这次升级的价值不只是增加方法,而是把校验、并发、重试和错误匹配统一到 Result 工作流里,适合 API 调用、数据解析和多步骤异步任务。发布图用 Result<T,E> 分叉到 Ok 与 Err,准确强化了这一心智模型。
边界与风险 旧的 serialize、deserialize、hydrate 已移除,升级会产生迁移成本;Result 也不会自动消除副作用、重试幂等性或 schema 设计问题。视觉上虽有代码图与品牌化发布卡片,但主要价值来自库的工程能力,而非视觉、交互或设计方法。