Υποστηρίζει γραφομηχανή ονομάτων;

ψήφοι
52

Όπως στον τίτλο: κάνει ονομάτων υποστήριξη γραφομηχανή; Αν ναι, πώς μπορώ να τα χρησιμοποιήσω;

Δημοσιεύθηκε 05/10/2012 στις 01:33
πηγή χρήστη
Σε άλλες γλώσσες...                            


5 απαντήσεις

ψήφοι
55

Γραφομηχανή επιτρέπει να ορίσετε ενότητες συνδέονται στενά με αυτό που θα είναι σε ECMAScript 6. Το ακόλουθο παράδειγμα έχει ληφθεί από το spec:

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

Όπως μπορείτε να δείτε, μονάδες έχουν ονόματα και μπορεί να είναι ένθετα. Εάν χρησιμοποιείτε τελείες στο όνομα της μονάδας, γραφομηχανή θα συντάξει αυτό ένθετα ενότητες ως εξής:

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

Αυτό είναι ίσο με

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

Αυτό που είναι επίσης σημαντικό είναι ότι αν χρησιμοποιήσετε ξανά ακριβώς το ίδιο όνομα μονάδας σε ένα πρόγραμμα γραφομηχανή, ο κώδικας θα ανήκουν στην ίδια μονάδα. Ως εκ τούτου, μπορείτε να χρησιμοποιήσετε ένθετα ενότητες για την εφαρμογή ονομάτων Αρχιερατική.

Απαντήθηκε 05/10/2012 στις 09:12
πηγή χρήστη

ψήφοι
28

Από την έκδοση 1.5, γραφομηχανή υποστηρίζει namespaceλέξη-κλειδί. Namespaces είναι ισοδύναμα με εσωτερικές μονάδες.

Από Τι νέο υπάρχει στο γραφομηχανή :

Πριν:

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

Μετά:

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

Για τον καθορισμό μια εσωτερική μονάδα, τώρα μπορείτε να χρησιμοποιήσετε και τα δύο moduleκαι namespace.

Απαντήθηκε 24/07/2015 στις 18:01
πηγή χρήστη

ψήφοι
9

Εδώ είναι ένα παράδειγμα γραφομηχανή ονομάτων:

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

Μπορείτε να δείτε περισσότερα εδώ: http://www.codebelt.com/typescript/javascript-namespacing-with-typescript-internal-modules/

Απαντήθηκε 03/11/2013 στις 22:54
πηγή χρήστη

ψήφοι
7

Δεν υπάρχει καμία λέξη «ονομάτων», αλλά οι εσωτερικές μονάδες (χρησιμοποιώντας τη λέξη «ενότητα») και τις εξωτερικές μονάδες (χρησιμοποιώντας τη λέξη «εξαγωγή») προσφέρουν ένα παρόμοιο τρόπο για να στεγανοποιήσει τον κωδικό σας σε λογικές ιεραρχίες.

Απαντήθηκε 05/10/2012 στις 01:35
πηγή χρήστη

ψήφοι
3

Ψευδής...

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

είναι ίσο με

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

γιατί μπορείτε να γράψετε έξω από τη μονάδα A:

var y = A.B.C.x;

Αλλά :

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
Απαντήθηκε 21/07/2015 στις 11:45
πηγή χρήστη

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