TS2345 · Config · Db · Effect
这是线索,不是结论。
内容由机器从检索到的中文译文合成,尚未经人确认;引用是提问那一刻的快照,
译文更新后可能过时。每条都附了可点回原文的链接 —— 请核对后再采用。
发现不对请
提 issue。
报错原文
seed-cases/06-runpromise-missing-many.ts(10,38): error TS2345: Argument of type 'Effect<string, never, Config | Logger | Db>' is not assignable to parameter of type 'Effect<string, never, never>'.
Type 'Config | Logger | Db' is not assignable to type 'never'.
Type 'Config' is not assignable to type 'never'. 诊断
最可能的原因:`runPromise` 要求 Effect 的 R 参数为 `never`,而这里的 Effect 仍然声明了未满足的依赖 `Config | Logger | Db`,也就是你还没有把对应 service 的 Layer 提供给它(文档指出 Logger service 本身还依赖 Config service 来取配置)。 修复方向:先用 `Layer` 把这些 service(含 Logger 所依赖的 Config)组合好,通过 `Effect.provide` 传给该 Effect,使 R 收窄为 `never`,再调用 `runPromise`。 如果仍有疑问,请补充该文件里 Layer 的定义与 provide 的写法(最小复现代码)。
依据(3 条站内译文)
- 管理 Layer
#logger现在我们继续实现 Logger service,它依赖 Config service 来获取一些配置。
核验记录 · 英文原文 · 基线a915662 - Effect 数据类型
#config使用 Config.schema 可以通过 schema 读取并解码配置。
核验记录 · 英文原文 · 基线bf46254 - PlatformLogger
#tofile基于已有的字符串 logger 创建一个新的 logger,并把它的输出写入指定文件。
核验记录 · 英文原文 · 基线bf46254
你也被这个报错卡住了?
把你自己的报错整段贴到报错诊断 —— 它提取的 API 名与类型名来自你的实际代码,比照抄别人的诊断更准; 诊断完也会并进这一条(同一报错算同一条)。
本页来自 2026-09-13 的快照(https://effect-ts.cn)。来自站内 /debug 的真实诊断,按报错签名归并(绝对路径/行列号/堆栈帧已归一)。条目为机器生成、未经人审(reviewed 字段),引用是提问那一刻的快照。