You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Deno程序std模块依赖导致ReadableStream无getIterator编译错误

问题解决方法

错误原因

这个TS2339报错是依赖版本不兼容导致的:你当前使用的deno.land/std@0.83.0版本过旧,其中async/pool.ts的实现依赖了ReadableStream的getIterator方法,但新版Deno的全局类型定义已经移除了这个非标准方法,所以触发类型校验错误。你在routes.ts中自行添加的局部ReadableStream接口扩展无法覆盖全局类型定义,所以解决不了问题。

解决方案

方案1:永久修复(推荐)

统一升级所有依赖到适配当前Deno版本的新版:

  1. 删除routes.ts中你自行添加的无效扩展代码:
// 删掉以下内容
interface ReadableStream<R> {
    getIterator(): any
}
  1. 统一所有依赖的版本,避免多版本冲突:
  • 修改deps.ts,将oak锁定到适配新版Deno的稳定版本:
export {
    Application
} from "https://deno.land/x/oak@v12.6.2/mod.ts"
  • 修改routes.ts中的oak导入地址,和deps.ts保持一致:
import { Router } from "https://deno.land/x/oak@v12.6.2/mod.ts";
  • 修改controller.ts中的mongo驱动版本,替换为适配新版Deno的版本:
import {MongoClient} from "https://deno.land/x/mongo@v0.31.0/mod.ts";
  1. 重新执行启动命令即可正常运行:
    deno run --allow-all server.ts

方案2:临时绕过

如果暂时不想调整依赖,可以在启动命令中添加--no-check参数跳过TypeScript类型校验直接运行:
deno run --no-check --allow-all server.ts
该方案仅适合临时测试,不推荐生产环境使用。

内容的提问来源于stack exchange,提问作者hagenek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 01:06:07