Ahogy a neve: nem géppel támogatás névterek? Ha igen, hogyan kell őket használni?
Vajon géppel támogatási névtér?
Géppel lehetővé teszi, hogy meghatározza modulok szorosan kapcsolódik, hogy mi lesz a ECMAScript 6. Az alábbi példa venni a spec:
module outer {
var local = 1;
export var a = local;
export module inner {
export var x = 10;
}
}
Mint látható, modulok nevét és egymásba lehet illeszteni. Ha pöttyök modulnevek, írógéppel lefordítja ezt beágyazott modulok a következők:
module A.B.C {
export var x = 1;
}
Ez egyenlő
module A {
module B {
module C {
export var x = 1;
}
}
}
Mi is fontos, hogy ha újra pontosan ugyanazt modul nevét egy géppel programban, a kód tartozik ugyanahhoz a modult. Így, akkor beágyazott modulok végrehajtására Hierarchichal névterek.
Mivel a 1.5 verzió, géppel támogatja namespacekulcsszó. A névterek egyenértékű belső modulokat.
Tól Újdonságok a géppel :
Előtt:
module Math { export function add(x, y) { ... } }Után:
namespace Math { export function add(x, y) { ... } }
Meghatározó belső modul, most már tudod használni mind moduleés namespace.
Itt van egy géppel névtér példa:
///<reference path='AnotherNamespace/ClassOne.ts'/>
///<reference path='AnotherNamespace/ClassTwo.ts'/>
module MyNamespace
{
import ClassOne = AnotherNamespace.ClassOne;
import ClassTwo = AnotherNamespace.ClassTwo;
export class Main
{
private _classOne:ClassOne;
private _classTwo:ClassTwo;
constructor()
{
this._classOne = new ClassOne();
this._classTwo = new ClassTwo();
}
}
}
Akkor nézd meg, tovább itt: http://www.codebelt.com/typescript/javascript-namespacing-with-typescript-internal-modules/
Itt nincs „névtér” kulcsszó, de a belső modulok (a „modul” kulcsszó) és külső modulok (a „kivitel” kulcsszó) hez hasonló módon partícionálását kódot logikus hierarchiát.
Hamis...
module A.B.C {
export var x = 1;
}
egyenlő
module A {
export module B {
export module C {
export var x = 1;
}
}
}
mert akkor írj kívül modul:
var y = A.B.C.x;
De :
module A {
module B {
module C {
export var x = 1;
}
var y = C.x; // OK
}
//var y = B.C.x; // Invalid
}
//var y = A.B.C.x; // Invalid













