← 报错百科

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 条站内译文)

你也被这个报错卡住了?

你自己的报错整段贴到报错诊断 —— 它提取的 API 名与类型名来自你的实际代码,比照抄别人的诊断更准; 诊断完也会并进这一条(同一报错算同一条)。

本页来自 2026-09-13 的快照(https://effect-ts.cn)。来自站内 /debug 的真实诊断,按报错签名归并(绝对路径/行列号/堆栈帧已归一)。条目为机器生成、未经人审(reviewed 字段),引用是提问那一刻的快照。