2014-05-09 85 views
1

我有一個類似如下結構符號在父模塊中未提供導出的子模塊

export module Foo { 
    export var DEBUG = false; 
} 

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

這工作得很好。我可以做Foo.Utils.fooFunc()沒有問題。

事情是,WebStorm強調引用Foo.Utils並說「私人成員不可訪問」。然後,我嘗試導出模塊來避免這個錯誤,但現在的打字稿編譯borks,給我

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

爲什麼會發生這種情況,我如何能實現我的意圖輔助模塊引用Foo.DEBUG的目標,同時保持該模塊非私人?

回答

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

+0

對不起,兩年後給你答案。我_did_使用當時的信息,雖然:) – oligofren