用途:该技能面向 Effect-TS 代码审查、调试“unhandled promise rejections”或进程崩溃,以及优化并行操作性能。不适用于简单非 Effect 的 TypeScript 代码或其他函数式库(如 fp-ts)。
主要能力:给出反模式对照表,包含问题写法、推荐写法与原因:在函数中段调用 await Effect.runPromise(fx) 应改为 yield* fx 组合;漏写 yield*(如 const user = yield fetchUser())会拿到 Effect 对象而非结果,应改为 const user = yield* fetchUser();用 throw new Error() 会产生 Defect(崩溃)而非类型化错误,应使用 yield* Effect.fail(new Error());Effect.all(tasks) 默认无界并发易 OOM,应加 { concurrency: 10 };直接 Effect.runPromise(fx) 不捕获错误会导致未处理拒绝,应配合 Effect.catchAll(...);用 try/finally 手工清理在中断时不可靠,应使用 Effect.acquireRelease(...)。
使用方式:作为代码审查与调试参考,按对照表定位并修正问题。危险信号包括:循环或辅助函数内出现 Effect.runPromise 或 Effect.runSync;对大列表使用无 concurrency 选项的 Effect.all;Effect.gen 块内出现 throw;调用 Effect 时只写 yield 缺 *。
限制与依赖:资料要求前置背景为 effect-ts-fundamentals,必需子技能为 effect-ts-concurrency,参考 effect-ts-resources。除此之外的安装、许可、平台与费用信息暂未提供。