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