在打字稿中将响应正文流式传输到文件:类型 'ReadableStream<Uint8Array>' 上不存在属性'pipe'



我能够从API中获取二进制体并将其写入node中的文件。

const fileStream = fs.createWriteStream(filePath);

fetch(apiURL).then((downloadResponse) => {
downloadResponse.body.pipe(fileStream);
});

但是,当这样做时,我得到一个检查错误:

属性'pipe'在类型上不存在"ReadableStream">

在我看来很奇怪,当linter给出错误时,调用会工作。我甚至最初认为我的逻辑是错误的,浪费时间调试这个工作调用…

我的typescript版本是否由于某种原因错误地识别了类型,或者我应该不能执行此调用?

我几乎没有从打字稿开始,但有时我遇到这样的特质,当我做一些看起来完全有效的事情时,会减慢我的速度。

在评论中提供的答案确实是正确的,但这不是直截了当的上下文是在nextjs应用程序中使用从服务器端渲染函数(如getServerSideProps)获取。

在客户端,使用标准获取api是非常直接的,但是在SSR上,并不明显必须使用npm i @types/node-fetch额外安装节点获取类型。

相关内容

最新更新