Har Loggfila støtte namespace?

stemmer
52

Som i tittelen: gjør Loggfila støtte navnerom? Hvis ja, hvordan bruker jeg dem?

Publisert på 05/10/2012 klokken 00:33
kilden bruker
På andre språk...                            


5 svar

stemmer
55

Maskinskrevet manuskript gjør det mulig å definere modulene nær tilknytning til det som vil være i ECMAScript 6. Det følgende eksempel er tatt fra spek:

module outer {
    var local = 1;
    export var a = local;
    export module inner {
        export var x = 10;
    }
}

Som du kan se, moduler har navn og kan nestes. Hvis du bruker prikker i modulnavn, vil Loggfila kompilere dette til nestede moduler som følger:

module A.B.C {
    export var x = 1;
}

Dette er lik

module A {
    module B {
        module C {
            export var x = 1;
        }
    }
}

Hva er også viktig er at hvis du bruke nøyaktig samme modulnavnet i en Loggfila program, vil koden tilhører samme modul. Derfor kan du bruke nestede moduler for å gjennomføre hierarchichal navnerom.

Svarte 05/10/2012 kl. 08:12
kilden bruker

stemmer
28

Som i versjon 1.5 støtter Loggfila namespacesøkeord. Navnerom er tilsvarende interne moduler.

Fra Hva er nytt i Loggfila :

Før:

module Math {
    export function add(x, y) { ... }
}

Etter:

namespace Math {
    export function add(x, y) { ... }
}

For å definere en intern modul, nå kan du bruke både moduleog namespace.

Svarte 24/07/2015 kl. 18:01
kilden bruker

stemmer
9

Her er en Loggfila navne eksempel:

///<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();
        }
    }
}

Du kan sjekke ut mer her: http://www.codebelt.com/typescript/javascript-namespacing-with-typescript-internal-modules/

Svarte 03/11/2013 kl. 21:54
kilden bruker

stemmer
7

Det er ingen 'namespace' keyword, men interne moduler (ved hjelp av 'modul' søkeord) og eksterne moduler (ved hjelp av 'eksportere' søkeord) tilbyr en lignende måte å partisjonere koden din i logiske hierarkier.

Svarte 05/10/2012 kl. 00:35
kilden bruker

stemmer
3

Falsk...

module A.B.C {
    export var x = 1;
}

er lik

module A {
    export module B {
        export module C {
            export var x = 1;
        }
    }
}

fordi du kan skrive utenfor modul A:

var y = A.B.C.x;

Men :

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
Svarte 21/07/2015 kl. 11:45
kilden bruker

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