Vajon géppel támogatási névtér?

szavazat
52

Ahogy a neve: nem géppel támogatás névterek? Ha igen, hogyan kell őket használni?

A kérdést 05/10/2012 01:33
a forrás felhasználó
Más nyelveken...                            


5 válasz

szavazat
55

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.

Válaszolt 05/10/2012 09:12
a forrás felhasználó

szavazat
28

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.

Válaszolt 24/07/2015 18:01
a forrás felhasználó

szavazat
9

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/

Válaszolt 03/11/2013 22:54
a forrás felhasználó

szavazat
7

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.

Válaszolt 05/10/2012 01:35
a forrás felhasználó

szavazat
3

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
Válaszolt 21/07/2015 11:45
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more