2016-05-11 4 views

Antwort

1

Wenn Sie die Klasse nicht aus dem Modul/der Datei exportieren, ist sie nicht global sichtbar, d. H. Es gibt keinen Grund, Klassendefinitionen in Funktionsbereiche einzufügen.

Mehr über Module in TS: https://www.typescriptlang.org/docs/handbook/modules.html

+0

Wahr, aber was, wenn es ein Objekt im selben Bereich gibt, das einen Verweis auf die Klasse speichert, dann wird es dem globalen Gültigkeitsbereich richtig angezeigt? (siehe Screenshot in Frage) – bigp

+0

(Forts.) Ah ich denke ich sehe, was Sie jetzt sagen. Es ist sinnlos, einen Verweis auf die Klasse so zu speichern, wie ich es eingerichtet habe, dass die Arbeit getan wird, indem man sie in einem Modul definiert, im Grunde? – bigp

+1

Richtig, Sie denken immer noch in Bezug auf JS, wenn Sie darüber nachdenken sollten, wie TS (und ES6 für diese Angelegenheit) funktioniert. – pablochan

2

Verwendung des folgenden Codes in Typoskript Ergebnisse in praktisch der gleichen JavaScript, die Sie scheinen zu streben ...

namespace MY_NAMESPACE { 
    export class AssetService { 

    } 
} 

resultierende Code:

var MY_NAMESPACE; 
(function (MY_NAMESPACE) { 
    var AssetService = (function() { 
     function AssetService() { 
     } 
     return AssetService; 
    }()); 
    MY_NAMESPACE.AssetService = AssetService; 
})(MY_NAMESPACE || (MY_NAMESPACE = {})); 

Wenn Sie möchten wirklich reduzieren Sie den Umfang, wechseln Sie zu externen Modulen (AKA "mod "heutzutage").