如何解决deno bundle失败类型“ ReadableStream <R>”
使用bundle运行deno失败,并显示以下错误:
error: TS2339 [ERROR]: Property 'getIterator' does not exist on type 'ReadableStream<R>'.
return res.readable.getIterator();
~~~~~~~~~~~
at https://deno.land/std@0.63.0/async/pool.ts:45:23
tsconfig
{
"compilerOptions": {
"lib": [
"deno.ns","dom","dom.iterable"
],"plugins": [
{
"name": "typescript-deno-plugin"
}
]
}
}
运行命令。
$ deno bundle -c tsconfig.json app.ts app.js
请让我知道。
解决方法
是什么让我犯了这个错误:
我不确定是否有导致此问题的真正原因,但就我而言,当我尝试从Deno std lib导入“ v4” UUID软件包时收到此错误,并且我这样做的依赖项是传递解决(两个或多个步骤)。就我而言,我决定让我的项目将所有依赖项重新导出到项目根目录下的deps.ts
文件中:
[...]
// provide UUID from std lib
export {
v4
} from "https://deno.land/std@0.63.0/uuid/mod.ts";
[...]
...然后,在发往客户端的脚本中,我通过相对路径导入了该模块并尝试使用它:
// this fails to compile with OP's error
import { v4 } from "../deps.ts";
[...]
const myNewUUID = v4.generate();
我的解决方法:
让使用方模块在不使用间接引用(通过URL)的情况下导入外部模块:
// this seems to compile and work OK
import { v4 } from "https://deno.land/std@0.63.0/uuid/mod.ts";
[...]
const myNewUUID = v4.generate();
我还没有在其他标准模块上遇到这个问题,而且奇怪的是,即使将deps.ts
的模块重新加载了deno cache --reload deps.ts
,该模块解析方法似乎还是失败了–它们仍然无法解决与上述错误。因此,我不确定此问题是否与v4 UUID软件包无关,或者是否可能与其他模块有关。
如果有人对为什么有任何其他信息,则此导入策略会引发这种令人费解的错误,我很想听听。 (我的猜测是Deno.bundle实现中的错误吗?)目前,这种解决方法似乎还足够合理。
OP的离题注释:您已在tsconfig.json中包含了库“ dom”和“ deno.ns”,因此对于the documentation,您还应该提供目标JS级,例如“ es2018”(请参阅:“别忘了包含JavaScript库”)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。