Kialakítási szempontok

Befejeződött

Kódszervezéshez használhat névtereket vagy modulokat, és kódokat és deklarációkat is tartalmazhat.

Bár a névterek könnyen használhatók egyszerű implementációkhoz, és nem függenek a modulbetöltőtől, a modulok további előnyöket is kínálnak, amelyek a névterek számára nem. Modulok:

  • Deklarálják a függőségeiket.
  • Jobb kódhasználatot biztosít.
  • Erős elkülönítést biztosít.
  • Rejtse el a moduldefiníciók belső utasításait, és csak a deklarált összetevőhöz társított metódusokat és paramétereket mutassa.
  • Jobb eszköztámogatás a kötegeléshez.
  • Ajánlott a névterek használata Node.js alkalmazásokhoz, mivel a modulok az alapértelmezettek.
  • Meg tudja oldani a felülről lefelé történő JavaScript-folyamatokkal kapcsolatos problémákat, mert a külső metódusra vagy osztályra való hivatkozás csak a metódus meghívása során van példányosul.

Az ECMAScript 2015-től kezdődően a modulok a nyelv natív részei, és minden megfelelő motor-implementációnak támogatnia kell. Ezért új projektek esetén a modulok használata ajánlott a kódszervezéshez.

Megjegyzés

A névtereket és modulokat nem ajánlott ugyanabban a projektben kombinálni.

Az alábbi táblázat összefoglalja és összehasonlítja a modulokat és a névtereket.

Modul Névtér
Modulok használatával a kódot különálló fájlokba rendszerezheti a funkciók logikai csoportosítása érdekében. A névterek használatával a kódot különálló fájlokba rendszerezheti a funkciók logikai csoportosítása érdekében.
A modulok a saját helyi hatókörükben futnak, nem a globális hatókörben. A névterek a saját helyi hatókörükben futnak, nem a globális hatókörben.
A modulok deklaratívak; a modulok közötti kapcsolatok fájlszinten vannak megadva az import és az exportálás szempontjából. A névterek nem deklarálják a függőségeiket.
A modulokat a vagy a kulcsszó használatával export import definiálhatja egy fájlban. A legfelső szintű importálást vagy exportálást tartalmazó fájlok modulnak minősülnek. A névteret a kulcsszóval namespace definiálhatja egy fájlban. A névtér-utasítások beágyazhatóak, és több fájlra is kiterülhet.
Ha a modulon kívüli egyes modulösszetevőkre is fel van téve, használja a export kulcsszót. Ha a névtéren kívüli különálló névtér-összetevőket is fel kell fedni, használja a export kulcsszót.
Egy másik modul egyik modulja összetevőjét a kulcsszóval import használhatja. Ha egy összetevőt egy másik TypeScript-fájlban található egyik névtérből szeretne használni, adjon hozzá egy utasítást a három reference perjeles ( /// ) szintaxissal.
Egy modul és annak összes függő fájlja lefordítására használja az tsc --module parancsot. A névtereket és az összes függő fájlt tartalmazó TypeScript-fájlok különálló JavaScript-fájlokra való lefordítása az tsc paranccsal.
Többfájlos modulok nem fordíthatóak le egyetlen modulra. Ha a névtereket tartalmazó összes TypeScript-fájlt egyetlen JavaScript-fájlba kell lefordítani, használja az tsc --outFile parancsot.
A modulok egy modulbetöltő API-val importálnak egy másik modult. Az API-t a modul fordításakor adhatja meg. A névterek a html.js címkével megadott névnevek (sorrendben) <script> megadásával tölthetők be.
A modulokban újraexportelhatja az összetevőket az eredeti nevük használatával, vagy átnevezheti őket. A névterek nem exportálhatók újra az összetevők, és nem nevezhetők át.