1

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

出于这个原因,我需要能够将 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 的定义?或者,是否有另一种方法来实现这种重新声明?

4

1 回答 1

1

有没有办法只对这部分代码使用 no-default-lib 来替换 self 的定义?或者,是否有另一种方法来实现这种重新声明?

提示 * 建议使用compilerOptions.noLib设置为 true 的 tsconfig.json,而不是这个神奇的注释

回答

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

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

于 2015-07-29T09:36:27.080 回答