我在全球范围内宣布了class A
:
class A { }
我有namespace N
,其他类型也有class A
:
namespace N {
class A { }
// other declarations
}
如何在class A
内实例化全局namespace N
?
namespace N {
export class B {
static getA(): A { // here
return new A(); // and here I want to refer global A, not N.A
}
}
}
答案 0 :(得分:1)
强行打字黑客。在JavaScript中,您可以通过全局变量访问全局级别的变量,该变量位于Web浏览器window
和node.js global
中。对于Web浏览器,它很容易。您可以选择您喜欢的语法。
return new (<any>window).A()
或
return new (window as any).A()
当你的应用程序在node.js或其他具有另一个全局变量的非浏览器平台上运行时,会有点复杂。我不知道哪个更漂亮的解决方案会破解获取全局变量(因为global是TypeScript中的关键字)。
return new (eval("global")).A()