首页 > 解决方案 > 如何在 Typescript 中实例化 File 对象?

问题描述

我看到我的 IDE 识别File为 Typescript 对象。在 Google 中进行精细搜索将我带到此页面,该页面与对象无关FileFile既不在基本类型中,也不在高级类型中。

Typescript中的File对象的处理方式与 Javascript 中的处理方式完全相同吗?有什么突破性的差异吗?

同样,如何在 Typescript 中实例化文件类型?

标签: typescriptfileinitialization

解决方案


该类File未定义为 TypeScript 语言本身的一部分,而是 DOM 规范的一部分。TypeScript 为 DOM 对象提供了一个标准声明文件作为标准库的一部分,您可以在此处查看

/** The File interface provides information about files and allows JavaScript in a web page to access their content. */
interface File extends Blob {
    readonly lastModified: number;
    readonly name: string;
}

declare var File: {
    prototype: File;
    new(fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;
};

当然,声明文件本身不是很友好。您可能会发现MDN DOM API 文档更有用(但请注意,它适用于 JavaScript,而不是 TypeScript,因此不要期望任何显式类型注释)。它提供了这个例子:

var file = new File(["foo"], "foo.txt", {
  type: "text/plain",
});

虽然这在技术上是 JavaScript,但它可以像 TypeScript 一样编译,推断的类型file将是File.


推荐阅读