我试图弄清楚为什么我的node.js express后端使用TypeScript无法识别typescript lib.dom.d.ts文件中定义的函数。有问题的接口/类型是File/Blob,一个File扩展一个Blob,而我试图访问的函数是Blob接口中的text(),下面从typescript v3.9.5的lib.dom.d.ts文件中执行
interface Blob {
readonly size: number;
readonly type: string;
arrayBuffer(): Promise<ArrayBuffer>;
slice(start?: number, end?: number, contentType?: string): Blob;
stream(): ReadableStream;
text(): Promise<string>;
}
我在前端从div生成PDF,然后将PDF作为文件类型发送到后端。
在VSCode中,我可以将File转换为File或Blob,以便从Blob接口查看上面列出的所有只读和函数的IntelliSense自动完成选项。
尽管如此,我的API还是在尝试使用.text()函数时失败,声明${variableName}.text不是函数。
我已尝试根据此question将我的TypeScript更新为v3.9.5,并已将我的TypeScript版本设置为我的工作区版本。
我已经确认传入的数据是以File类型传入的。在尝试使用text()函数之前,请记录变量。我还尝试使用IntelliSense将变量转换为File和Blob以完成调用。
我试图擦除运行我的nodeJS express后端的docker容器。
1条答案
按热度按时间cbjzeqam1#
感谢Konrad,我通过输出
${variable} instanceof File/Blob
确定问题是NodeJS没有Blob或File类型,每个类型都给我一个File/Blob is not defined错误。看起来VSCode/Typescript错误地暗示它们确实存在。这是我想出来的解决办法
我使用了NodeJS的fs并读取传入FormData的文件路径,该路径类似于
/tmp/${random generated path}
干杯干杯干杯