TypeScript 中 createReadStream 的类型应该是啥?
Posted
技术标签:
【中文标题】TypeScript 中 createReadStream 的类型应该是啥?【英文标题】:What should be the type of createReadStream in TypeScript?TypeScript 中 createReadStream 的类型应该是什么? 【发布时间】:2020-06-24 10:09:21 【问题描述】:我正在尝试使用打字稿。 createReadStream 的类型 应该是什么?我在 github
上的 DefinitelyTyped link 中找到了来自fs.d.ts
文件的类型声明
更新
我要做的是从前端上传文件。在后端(基本上是节点)上,我收到了一个文件对象。在破坏文件对象时,我得到以下信息。
const createReadStream, filename, mimetype, encoding = await file;
有什么办法,我可以用这种类型吗?
更新问题
现在,我应该如何添加我收到的 file 对象的类型 函数参数下面给出的函数?
export const processUpload = async (file, DestinationDir)
在官方node/fs.d.ts
文件中找到类型
function createReadStream(path: PathLike, options?: string |
flags?: string;
encoding?: string;
fd?: number;
mode?: number;
autoClose?: boolean;
/**
* @default false
*/
emitClose?: boolean;
start?: number;
end?: number;
highWaterMark?: number;
): ReadStream;
代码示例
export const processUpload = async (
file:
| PromiseLike<
createReadStream: /** WHAT SHOULD BE THE TYPE */;
filename: string;
mimetype: string;
encoding: string;
>
|
createReadStream: /** WHAT SHOULD BE THE TYPE */;
filename: string;
mimetype: string;
encoding: string;
,
DestinationDir = "default" : DestinationDir: string
) =>
const createReadStream, filename, mimetype, encoding = await file;
const stream = createReadStream();
/** SOME CODE */
return /*SOME RETURN TYPE*/
;
【问题讨论】:
npm install --save-dev @types/fs
我试过了,好像包不存在。
https://www.npmjs.com/package/@types/filesystem
@ritaj,我找到了链接。但是,如果你能分享一个sn-p,那将会很有帮助。谢谢
标题中的问题和正文中的问题完全不同。你不是在问createReadStream
的类型应该是什么。您在问是否可以以某种方式神奇地将createReadStream
应用于特定文件。答案是:不,不是。我的意思是,你可以这样做:import * as fs from "fs"; const filename, /*...*/ = await file; const createReadStream = fs.createReadStream.bind(fs, filename);
,但它不会给你带来任何有用的东西。
【参考方案1】:
我认为你可以使用这个:
import ReadStream from "fs-capacitor";
export interface FileUpload
createReadStream(): ReadStream;
filename: string;
mimetype: string;
encoding: string;
【讨论】:
【参考方案2】:fs.createReadStream
返回一个ReadStream
对象。此外,TypeScript 不希望您为 fs.createReadStream
提供类型。
【讨论】:
以上是关于TypeScript 中 createReadStream 的类型应该是啥?的主要内容,如果未能解决你的问题,请参考以下文章
typescript TypeScript中键入的Redux操作和Reducer的问题
深入浅出TypeScript- 在React项目中使用TypeScript
使用 typescript-eslint 在 VSCode 编辑器中未显示 Typescript 错误
如何使用 TypeScript 2.3 中新增的支持来限制 TypeScript 中 React Children 的类型?