Visual Studio 2013中的自定义lib.d.ts

时间:2014-11-23 13:34:16

标签: visual-studio-2013 typescript

我是TypeScript的新手,在某种程度上,作为一个例外,我正在尝试为一些Adobe的“ExtendScript”API编写类型定义文件的开头,这些API基于ECMAScript。

由于主机环境不是浏览器,我遇到的问题是Node.js民众在处理混乱的命名空间时由于仍然是单片的lib.d.ts文件而存在同样的问题。

到目前为止,它还不错。 lib.d.ts中的全局范围中有File的定义,而ExtendScript托管环境也在全局范围内定义File。但碰撞很小,我可以使用一些虚假的方法来污染File接口。

我仍然想知道我是不是只想在我的项目中放一个lib.d.ts的副本,把大部分内容抛出来并告诉编译器使用它。

有办法吗?我看不到任何tsc编译器选项来覆盖lib.d.ts。我也没有看到我在VS中指定任何自定义编译器选项的位置。

2 个答案:

答案 0 :(得分:2)

您可以将--nolib标志传递给TypeScript编译器,以从编译中删除lib.d.ts个定义...

tsc --nolib app.ts

这将彻底删除全局范围内的所有内容,因此您必须定义所需的所有内容,在您的情况下可能正是您想要的。

答案 1 :(得分:2)

您可以创建另一个文件,例如mylib.d.ts,并在那里放置必要的声明。 TypeScript会将接口声明合并为一个。例如:

// First.d.ts
export interface IProtocol {
  method1(): string;
}

// Second.d.ts
export interface IProtocol {
  method2(): string;
}

将自动合并到单个界面中,并且这两种方法都可用于您应用中的IProtocol实例。

您甚至可以在.d.ts文件中声明方法重载。标准.ts文件中无法做到的事情。