我正在使用嵌入式 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 的定义?或者,是否有另一种方法来实现这种重新声明?