扩展typescript lib.d.ts,在哪里提交更改

时间:2013-10-17 22:30:36

标签: typescript

根据https://developer.mozilla.org/en-US/docs/Web/API/FileReader

interface FileReader extends MSBaseReader {
    error: DOMError;
    readAsArrayBuffer(blob: Blob): void;
    readAsDataURL(blob: Blob): void;
    readAsText(blob: Blob, encoding?: string): void;
}
declare var FileReader: {
    prototype: FileReader;
    new (): FileReader;
}
来自lib.d.ts的这个也应该对变量有DONE,LOADING和EMPTY。我该如何扩展它,并且lib.d.ts是否有一个可以提交此类更改的公共场所?

2 个答案:

答案 0 :(得分:3)

要在将新属性添加到lib.d.ts之前访问它们,可以扩展声明。这可以完成,因为TypeScript中的接口是打开的。

因此,添加一个名为libextensions.ts的TypeScript文件并添加以下内容:

interface FileReader {
    EMPTY: number;
    LOADING: number;
    DONE: number;
}

您只需要将缺失的位放在这里 - 它们将被添加到lib.d.ts接口。

您可以使用此技术来保持工作草稿的最新状态,编译器会通过发出重复声明错误告诉您何时更新了lib.d.ts。

如果你有一个FileReader实例,你不需要通过FileReader.prototype.DONE访问常量,你可以在实例上使用常量 - 例如:

var fileReader = new FileReader();
var example = fileReader.DONE;

答案 1 :(得分:0)

您应该在此处打开错误报告:http://typescript.codeplex.com/workitem/list/basic打字稿小组管理lib.d.ts