如何在 Typescript 中实例化 File 对象?

Non*_*714 4 initialization file typescript

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

FileTypescript 中的对象是否与 Javascript 中的对象处理方式完全相同?是否存在重大差异?

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

p.s*_*w.g 8

File类没有定义为打字稿语言本身的一部分,而是DOM规范的一部分。TypeScript 为 DOM 对象提供了标准声明文件作为 stdlib 的一部分,您可以在此处自行查看:

/** 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;
};
Run Code Online (Sandbox Code Playgroud)

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

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

尽管这在技术上是 JavaScript,但它会像 TypeScript 一样编译得很好,并且推断出的类型file将为File.

  • @KarlAnthonyBaluyot `as File` 实际上并没有实例化任何东西;它只是一个[类型断言](https://www.typescriptlang.org/docs/handbook/basic-types.html#type-assertions)。`const file: File = {} as File` 将编译,但它不是类型安全的,并且 `file.name` 将是 `undefined`。 (2认同)