用途:该技能在实现类型安全、可组合、可测试的 TypeScript 应用时使用,典型场景包括需要严格错误追踪的复杂应用、通过依赖注入解耦接口与实现、以及安全组合多个异步操作。若只是简单脚本、标准 Promise 与 try/catch 已足够,或团队学习 Effect 的成本高于架构收益,则不建议使用。
主要能力:Effect-TS 把副作用当作值处理,统一提供类型安全的错误处理、依赖注入与资源管理。核心模式是用声明式、基于生成器的流程取代手动传递依赖和嵌套 try/catch。快速参考包括:顺序逻辑用 Effect.gen,服务定义用 Effect.Service,依赖装配用 Layer.merge / provide。
使用方式:用 Effect.gen 与 yield* 组合副作用,避免回调地狱和手动 Promise 链。服务通过 Effect.Service 定义并开启 accessors 访问器,便于依赖注入,可声明 dependencies。依赖层用 Layer.merge 合并,再通过 Effect.provide 提供给程序。
限制与常见错误:在 Effect.gen 内调用 effect 时忘记 yield*,会返回 effect 本身而非其值;不要用标准 try/catch,应改用 Effect.try 或 Effect.catchTag,以让错误保留在类型通道中。进阶错误处理与安全资源管理需配合 effect-ts-errors、effect-ts-resources 子技能。平台、收费与价格等信息暂未提供。