2013-11-04 33 views
2

我需要在TypeScript中實現Singleton模式。我找到了一個解決方案here,但它對我來說似乎是一種矯枉過正。畢竟,JavaScript在創建單身人士方面非常出色。TypeScript和類似JS的單例模式

是否有可能在TypeScript中寫下類似的內容(沒有出現錯誤)?

module Helpers { 
    Helpers.Singleton = {}; 
} 

目前,它正確生成,我期待的輸出:

// Module 
var Helpers; 
(function (Helpers) { 
    Helpers.Singleton = {}; 
})(Helpers || (Helpers = {})); 

但是爲什麼我的VisualStudio抱怨這裏面打字稿編譯器(它說,它「無法找到符號‘助手’ 。「在第2行!)?是否有可能以另一種方式寫作?

Left side shows generated code, right side illustrates the error highlight by VisualStudio

回答

10
module Helpers { 
    export module Singleton { 
     export var etc = 4; 
     export function printSomething() { 
      // etc 
     } 
    } 
} 

// later... 
Helpers.Singleton.printSomething(); 
+0

哇,謝謝瑞安這正是我一直在尋找! –

+0

爲什麼僅僅導出Singleton模塊是不夠的?但其所有屬性和功能?謝謝 – johni