我正在尝试使用mocha规范来制作由流类型强制执行的File
。
以下产生^^^^^^ object literal. This type is incompatible with File
。
这样做的正确方法是什么?
/**
*
* declare class Blob {
* constructor(blobParts?: Array<any>, options?: {
* type?: string;
* endings?: string;
* }): void;
* isClosed: bool;
* size: number;
* type: string;
* close(): void;
* slice(start?: number, end?: number, contentType?: string): Blob;
* }
*
* declare class File extends Blob {
* constructor(
* fileBits: $ReadOnlyArray<string | BufferDataSource | Blob>,
* filename: string,
* options?: FilePropertyBag,
* ): void;
* lastModifiedDate: any;
* name: string;
* }
*
* @param name
* @param type
* @returns {*}
*/
function newFile (name: string, type?: string): File {
const result = { name, type }
return (result: File)
}
答案 0 :(得分:0)
Flow使用"nominal typing"来表示类。这意味着只有具有相同键和值类型的对象才能代表类的实际实例。我怀疑最好的办法就是创建自己的File
子类来覆盖你想要的字段/方法。如果您覆盖字段/方法,则可能需要查看variance rules,以便从子类中获取类型错误。