Effect 三通道实验台

验证 Effect<Success, Error, Requirements> 是否真把「成功值 / 错误 / 依赖」在同一签名里追踪。 下面每点一步,看三通道如何随代码点亮塌缩,处理干净才解锁运行。
● 结论:方案成立(规则由真实 tsc 验证,见底部证据)
PROGRAM 的类型(由 tsc 推断,非注解)
Effect< Success 成功值never , Error 错误never , Requirements 依赖never >
🔒

反过来:违规写法编译不过

这些是 negatives.ts 里挂着 @ts-expect-error 的违规——点开看编译器会拦下什么。能编译通过本身就证明它们确实被拦截。
📋 真实验证证据(tsc / 运行期输出)
正向 demo.ts:零注解 program 被推断为 Effect<string, TooSmall, Random>,并用类型相等断言钉死三通道
反向 negatives.ts:4 条违规各挂 @ts-expect-error,tsc 零错 == 违规全被拦截
灵敏度对照:把 @ts-expect-error 贴到合法行上,tsc 必报 TS2578 Unused(证明探针没失灵)
环境:effect@3.21.2 · TypeScript 6 · 真包验证
build 运行期输出
[effect-poc] program : Effect<string, TooSmall, Random>  (三通道全部被推断)
[effect-poc] 运行结果 : ok: 0.856