Όπως στον τίτλο: κάνει ονομάτων υποστήριξη γραφομηχανή; Αν ναι, πώς μπορώ να τα χρησιμοποιήσω;
Υποστηρίζει γραφομηχανή ονομάτων;
Γραφομηχανή επιτρέπει να ορίσετε ενότητες συνδέονται στενά με αυτό που θα είναι σε 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;
}
}
}
Αυτό που είναι επίσης σημαντικό είναι ότι αν χρησιμοποιήσετε ξανά ακριβώς το ίδιο όνομα μονάδας σε ένα πρόγραμμα γραφομηχανή, ο κώδικας θα ανήκουν στην ίδια μονάδα. Ως εκ τούτου, μπορείτε να χρησιμοποιήσετε ένθετα ενότητες για την εφαρμογή ονομάτων Αρχιερατική.
Από την έκδοση 1.5, γραφομηχανή υποστηρίζει namespaceλέξη-κλειδί. Namespaces είναι ισοδύναμα με εσωτερικές μονάδες.
Από Τι νέο υπάρχει στο γραφομηχανή :
Πριν:
module Math { export function add(x, y) { ... } }Μετά:
namespace Math { export function add(x, y) { ... } }
Για τον καθορισμό μια εσωτερική μονάδα, τώρα μπορείτε να χρησιμοποιήσετε και τα δύο moduleκαι namespace.
Εδώ είναι ένα παράδειγμα γραφομηχανή ονομάτων:
///<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/
Δεν υπάρχει καμία λέξη «ονομάτων», αλλά οι εσωτερικές μονάδες (χρησιμοποιώντας τη λέξη «ενότητα») και τις εξωτερικές μονάδες (χρησιμοποιώντας τη λέξη «εξαγωγή») προσφέρουν ένα παρόμοιο τρόπο για να στεγανοποιήσει τον κωδικό σας σε λογικές ιεραρχίες.
Ψευδής...
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













