Effect 进阶

一个特性一篇:catchReason、ExecutionPlan、Tx、Optic、RateLimiter……每个都实测过的 Effect v4 高级用法。(共 19 篇)

effect/cli:用类型和 Schema 写命令行工具

用 effect/cli 的 Command、Flag、Argument 写类型安全的命令行:Schema 校验、父命令共享参数、子命令读取父参数、示例与别名、补全脚本和交互式 Prompt,全部在 4.0.5 下实测,并说明它仍是 unstable。

Context.Reference:带默认值的服务,取代 FiberRef

Context.Reference 是带默认值的服务键,读取不进 R,局部覆盖不外泄,取代了 v3 的 FiberRef。本文讲 References 内置项,以及 feature flag、per-request 配置的写法与边界。

Effect v4 的稳定性标注:@stability 标签取代 unstable 目录

说明 Effect 4.0.5 如何用 JSDoc 的 @stability 标签而非 effect/unstable 路径标注 API 稳定性,如何用语言服务诊断管理 unstable 用法,并附可复现的扫描脚本和 4.0.5 里仍是 unstable 的模块清单。

Effect.tx 与 TxRef:用事务取代 STM 的共享状态

v4 里 STM 被 Effect.tx 加一组 Tx 数据结构取代。本文讲嵌套事务如何合并、txRetry 如何阻塞重试、怎样原子地改多个 TxRef,以及它和 Ref、Semaphore 的取舍,附实测踩坑。