如何替换TypeScript中的self类型?
我在一个嵌入式JavaScript引擎(基于duktape)中工作。在此上下文中,“self”不是Window类型,而是Script或JSComponent类型。使用typescript,在self上使用这些类的成员时,编译会导致错误 因此,我需要能够将self重新声明为JSComponent或脚本。在标准的TypeScript库中,我无意中发现了以下内容,我在任何地方都找不到相关文档:如何替换TypeScript中的self类型?,typescript,duktape,Typescript,Duktape,我在一个嵌入式JavaScript引擎(基于duktape)中工作。在此上下文中,“self”不是Window类型,而是Script或JSComponent类型。使用typescript,在self上使用这些类的成员时,编译会导致错误 因此,我需要能够将self重新声明为JSComponent或脚本。在标准的TypeScript库中,我无意中发现了以下内容,我在任何地方都找不到相关文档: /// <reference no-default-lib="true"/> // 将其添加
/// <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;
//
///
//将self重新声明为JSComponent
声明var self:Atomic.JSComponent;
现在,我可以在TS文件中引用它,并将self用作JSComponent。但是,我不能再在这个或项目中的任何其他TS文件中使用标准类,如Object和Array
有没有一种方法可以只对这段代码使用默认库来代替self的定义?
或者,是否有其他方法实现此重新声明
有没有一种方法可以只对这段代码使用默认库来代替self的定义?或者,是否有其他方法实现此重新声明
小费
*建议使用tsconfig.json并将compilerOptions.noLib
设置为true,而不是使用此神奇注释
答复
将noLib
设置为true并从TypeScript repo复制的自定义副本进行编译
此处涉及的主题:因此,请删除lib.d.ts中的自我声明,并包含该版本?谢谢,这就解决了问题。虽然由于我在Visual Studio中工作,所以无法使用tsconfig.json,但Visual Studio似乎还不支持它(请参阅)。