javascript - TypeScript ודפוס סינגלטון דמוי JS


אני צריך ליישם את תבנית Singleton ב-TypeScript. מצאתי פתרון כאן אבל זה נראה לי מיותר. אחרי הכל, JavaScript מעולה ביצירת singletons.

האם אפשר לכתוב ב-TypeScript משהו כזה (בלי לקבל שגיאה)?

module Helpers {
    Helpers.Singleton = {};
}

כרגע, זה מייצר נכון את הפלט שאני מצפה לו:

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

אבל למה קומפיילר TypeScript בתוך VisualStudio שלי מתלונן על זה (הוא אומר שהוא "לא יכול למצוא את הסימבול 'Helpers'." בשורה 2!)? האם אפשר לכתוב את זה בדרך אחרת?

תשובה #1

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

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