Come indicato nello TS-handbook ci sono 2 tipi di moduli: "interno" & "esterno". Il codice nel modulo interno è scritto in Typescript e "external" è scritto in Javascript.
Al fine di allinearsi con la terminologia 's New ECMAScript 2015 hanno deciso di rinominare loro come segue:
- 'moduli interni' sono ora 'namespace'.
- "moduli esterni" sono ora semplicemente "moduli", per allinearsi con ECMAScript
Quindi:
- Il modo in cui si scrive il codice è diverso
- Quando si utilizzano i moduli le classi sono non esposto nella portata globale, mentre usando namespace:
Esempio:
Supponiamo di avere una sequenza di spazi dei nomi pubblici NamespaceA.NamespaceB.NamespaceC
che espone la classe pubblica ClassD
. È possibile accedere a tutte queste a livello globale in questo modo:
window.NamespaceA
window.NamespaceA.NamespaceB
window.NamespaceA.NamespaceB.NamespaceC
window.NamespaceA.NamespaceB.NamespaceC.ClassD
senza dire window.NamespaceA = NamespaceA
e se si utilizza i moduli è necessario utilizzare la "magia" di cui sopra
fonte
2017-01-25 08:47:32
[namespace e moduli] (https: //github.com/Microsoft/TypeScript-Handbook/blob/master/pages/Namespaces%20and%20Modules.md) –
Come ho capito, i namespace si chiamavano "modules" e venivano digitati in TypeScript prima che ECMAScript venisse fuori con un modulo standard. Ora che ES ha un modulo standard, TS ha rinominato i suoi "moduli" in "namespace" e ha aggiunto il supporto per i moduli ES. Non penso che ci sia una vera ragione per utilizzare gli spazi dei nomi in futuro. – Aaron
La lettura di "Namespace and Modules" di @Nitzan Tomer mi ha confuso di più. Quindi, pensi che io debba usare solo i moduli? –