我有类似以下结构的东西
export module Foo {
export var DEBUG = false;
}
module Foo.Utils {
export function fooFunc() : void { if(Foo.DEBUG) doIt() }
}
这很好用。我可以毫无问题地做Foo.Utils.fooFunc()
。
问题在于WebStorm突出了对Foo.Utils的引用,并说“私人成员无法访问"”。然后我尝试导出模块以避免此错误,但现在typescript编译器borks并给我
The property 'DEBUG' does not exist on value of type 'typeof Foo'.
Warning: Task "typescript:all" failed. Use --force to continue.
为什么会发生这种情况,如何在保持模块非私有的同时实现在子模块中引用Foo.DEBUG的预期目标?
答案 0 :(得分:1)
如果您想从文件中导出模块但想要它会分成多个部分,您可以执行以下操作:
module Foo {
export var DEBUG = false;
}
module Foo.Utils {
export function fooFunc() : void { if(Foo.DEBUG) doIt() }
}
export = Foo;
那就是说。如果您使用的是外部模块,则不需要 来使用内部模块。区别在于:https://www.youtube.com/watch?v=KDrWLMUY0R0&hd=1