【问题标题】:Symbols in parent module are not available in an exported submodule父模块中的符号在导出的子模块中不可用
【发布时间】:2014-05-09 13:20:31
【问题描述】:

我有一个类似以下结构的东西

export module Foo {
   export var DEBUG = false;
}

module Foo.Utils {
   export function fooFunc() : void { if(Foo.DEBUG) doIt() }
}

这很好用。我可以毫无问题地做Foo.Utils.fooFunc()

问题是 WebStorm 突出显示对 Foo.Utils 的引用并说“私有成员不可访问”。然后我尝试导出模块以避免此错误,但现在打字稿编译器出错并给了我

The property 'DEBUG' does not exist on value of type 'typeof Foo'. 
Warning: Task "typescript:all" failed. Use --force to continue.

为什么会发生这种情况,我怎样才能实现在子模块中引用 Foo.DEBUG 的预期目标,同时保持模块非私有?

【问题讨论】:

    标签: module typescript


    【解决方案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

    【讨论】:

    • 抱歉两年后给你答案。我当时确实使用了这些信息,不过:)
    猜你喜欢
    • 2016-10-31
    • 1970-01-01
    • 2015-10-07
    • 2015-02-15
    • 2020-12-06
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多