Heim >Web-Frontend >js-Tutorial >Wie verwende ich Namespaces effektiv mit externen TypeScript-Modulen?
Problem:
Sie haben Code, der Namespaces mit externen TypeScript-Modulen verwendet Module, aber es treten Fehler oder unerwartetes Verhalten auf. Hier ist Ihr Code:
// baseTypes.ts export namespace Living.Things { export class Animal { move() { /* ... */ } } export class Plant { photosynthesize() { /* ... */ } } } // dog.ts import b = require('./baseTypes'); export namespace Living.Things { // Error, can't find name 'Animal', ?? export class Dog extends Animal { woof() { } } } // tree.ts // Error, can't use the same name twice, ?? import b = require('./baseTypes'); import b = require('./dogs'); namespace Living.Things { // Why do I have to write b.Living.Things.Plant instead of b.Plant?? class Tree extends b.Living.Things.Plant { } }
Candy-Cup-Analogie:
Stellen Sie sich vor, Sie organisieren Süßigkeiten auf Papierbögen. Wenn es sich bei jedem Blatt um ein separates Modul handelt, ist das Anbringen eines Bechers mit der Beschriftung „A“ auf jedem Blatt nicht hilfreich – es ist so, als würden Sie zusätzliche Schritte erstellen, ohne Ihre Süßigkeiten tatsächlich zu organisieren.
Auf Becher verzichten:
Anstatt Namespaces zu verwenden, sollten Sie Ihren Code so schreiben:
// Mod1.ts export class Twix { ... } // Mod2.ts export class PeanutButterCup { ... } // Mod3.ts export class KitKat { ... }
Dadurch entsteht eine einfachere Struktur, ohne dass dies erforderlich ist unnötige Namespaces.
Gründe, warum Namespaces nicht ideal für Module sind:
Anleitung für externe Module:
Warnhinweise:
Das obige ist der detaillierte Inhalt vonWie verwende ich Namespaces effektiv mit externen TypeScript-Modulen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!