联盟类型 - 强大的结果

问题描述 投票:1回答:1

我在Express项目中使用formidable模块。

formidable的输入文件包含以下内容:

export interface Files {
    [key: string]: File; // | File[];
}
export interface File {
    name: string;
    //...
}
export declare class IncomingForm extends events.EventEmitter {
    //..
    parse(req: http.IncomingMessage, 
     callback?: (err: any, fields: Fields, files: Files) => any): void;
}

请注意// | File[]的注释,用于定义Files

我使用parse方法获取在浏览器上传的文件。实际测试表明,当只上传一个文件时,回调中的files对象具有files类型的密钥File(非常混淆使用名称)的属性。在调试器中,它显示为:

对象(文件:文件)

如果上传了两个文件,则files.files的类型为File[]

代码工作正常,没有任何错误。我很好奇为什么当定义省略数组选项时它可以是单个对象还是数组?

typescript typescript-typings formidable
1个回答
0
投票

似乎强大的DefinitelyTyped定义已过时。

作为用户,这是一个很好的机会,你可以在这里修复它并提交拉取请求:https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/formidable/index.d.ts

© www.soinside.com 2019 - 2024. All rights reserved.