如何在TypeScript中替换self类型?

时间:2015-07-29 08:48:40

标签: typescript duktape

我正在使用嵌入式JavaScript引擎(基于duktape)。在此上下文中,“self”不是Window类型,而是Script或JSComponent类型。使用typescript,在自己使用这些类的成员时,编译会导致错误。

出于这个原因,我需要能够将self重新声明为JSComponent或Script。在标准的TypeScript库中挖掘,我偶然发现了以下内容,我在任何地方都找不到任何文档:

/// <reference no-default-lib="true"/>

将其添加到要包含的d.ts中可以解决问题:

/// <reference path="./Atomic.d.ts" />
/// <reference no-default-lib="true"/>

// Redeclare self as a JSComponent
declare var self: Atomic.JSComponent;

我现在可以在我的TS文件中引用它,并使用self作为JSComponent。但是我不能再在我的项目中的这个或任何其他TS文件中使用标准类,如Object和Array。

有没有办法在这部分代码中使用no-default-lib来替换self的定义? 或者,还有另一种方法可以实现这种重新声明吗?

1 个答案:

答案 0 :(得分:1)

  

有没有办法在这部分代码中使用no-default-lib来替换self的定义?或者,还有另一种方法可以实现这种重新声明吗?

TIP  *建议使用设置为compilerOptions.noLib的tsconfig.json而不是此魔术评论

答案

noLib设置为true并从TypeScript存储库复制的lib.d.ts自定义副本进行编译。

此处涉及的主题:http://basarat.gitbooks.io/typescript/content/docs/types/lib.d.ts.html