📚
Lerndokumentationen
Web
Web
  • Willkommen
  • HTML
    • Was ist HTML?
    • Elemente
    • Attribute
    • Boilerplate
  • Textelemente
  • Links
  • Dokumentenstruktur
  • Medien
  • Tabellen
  • Formulare
  • CSS
    • Was ist CSS?
    • Syntax
  • Einheiten
  • Selektoren
  • Boxmodell
  • Hintergründe und Rahmen
  • Overflow
  • Bilder
  • Formulare
  • Textelemente
  • Layout
    • Flexbox
    • Grid
  • Responsive Design
  • JavaScript
    • Was ist JavaScript?
    • Einbindung in HTML
    • Grundlagen
      • Variablen und Werte
      • Datentypen
      • Operatoren und Ausdrücke
      • Kontrollstrukturen
      • Schleifen
    • Funktionen
      • Funktionsdeklarationen vs. Funktionsausdrücke
      • Arrow Functions
      • Standardparameter und Rest-Parameter
      • First-Class und Higher-Order-Funktionen
      • Closures
      • IIFE (Immediately Invoked Function Expressions)
    • Arrays
      • Erstellen und Modifizieren
      • Iteration über Arrays
      • Sortieren
      • Nützliche Methoden
    • Objekte und Datenstrukturen
      • Erstellen und Manipulieren
      • Destructuring
      • Sets und Maps
    • Strings
      • Template Literals
      • Methoden
    • Moderne JavaScript-Features
      • Optionale Verkettung
      • Nullish Coalescing Operator
      • Spread und Rest Operator
      • Kurzschlussausdrücke
    • Scope und Kontext
      • this Keyword
      • Call, Apply und Bind
      • Hoisting und Temporal Dead Zone (TDZ)
    • Objektorientierte Programmierung
      • Prototypes
      • Constructor Functions
      • ES6 Classes
      • Die create()-Methode
    • Asynchronous JavaScript
      • AJAX
      • Promises
    • Zahlen, Daten, Internationalisierung und Timer
      • Mathematische Operationen
      • Datum und Zeit
      • Internationalisierung
      • Timer
    • Modules
    • JavaScript im Browser (DOM und Events)
      • Das DOM
      • Elemente auswählen, erstellen und manipulieren
      • Styles, Attribute und Klassen
      • Events und Event Listener
      • Event Propagation
        • Event Delegation
      • DOM Traversing
    • JavaScript Engine und Performance
      • Execution Context und Call Stack
  • TypeScript
    • Was ist TypeScript?
  • Compiler und Runtimes
  • Konfiguration
  • Types
    • Primitive Typen und Typableitung
    • Arrays und Tupel
    • Objekte
    • Top- und Bottom-Types
    • Enums
    • Utility Types
      • Records
  • Typenkombination
    • Union Types
    • Discriminated Unions
    • Intersections
  • Funktionen
  • Klassen
    • Grundlagen
    • Feldinitialisierer
    • Schreibgeschützte Felder
    • Implementieren
    • Private und Geschützte Member
    • Getter und Setter
    • Statische Member
    • Abstrakte Klassen und Member
  • Modules
    • Importieren und Exportieren
    • Ambient Types
    • Namespaces
    • Globals
  • React
    • Was ist React?
    • JSX
    • Komponenten
      • Root-Komponente
      • Styling
      • Listen
      • Conditional Rendering
      • Fragments
    • Props
      • Destructuring
      • Children
    • Interaktivität
      • Event Handling
      • State
      • Formulare
    • State Management
      • State anheben
      • Derived State
    • Komposition und Reusability
      • Komponentenstrukturierung
      • Prop Drilling
      • Komposition
Bereitgestellt von GitBook
Auf dieser Seite
  1. Modules

Namespaces

TypeScript unterstützt auch Namespaces zur Gruppierung von Code. Versuchen Sie jedoch, diese Funktion zu vermeiden. Sie wurde zu TypeScript hinzugefügt, bevor ECMAScript-Module standardisiert wurden.

Namespaces ähneln Modulen, weisen aber einige wichtige Unterschiede auf:

  • Namespaces können über mehrere Dateien aufgeteilt werden.

  • Namespaces können über mehrere Deklarationen hinweg zusammengeführt werden.

namespace MathUtils {
  export function add(a: number, b: number): number {
    return a + b;
  }

  export function subtract(a: number, b: number): number {
    return a - b;
  }

  export const PI = 3.14159;
}

const sum = MathUtils.add(5, 3);
const difference = MathUtils.subtract(10, 4);
const area = MathUtils.PI * 5 * 5;

Da Module bereits eine Möglichkeit bieten, Code zu organisieren, sind Namespaces weitgehend überflüssig.


Dennoch können Namespaces in einigen Fällen nützlich sein:

  1. Wenn du in einer älteren Codebasis arbeitest, die keine ES-Module verwendet, oder im globalen Bereich, dann können Namespaces helfen, zusammengehörigen Code zu gruppieren und zu kapseln. Wenn du jedoch ein neues Projekt beginnst, solltest du stattdessen ES-Module verwenden.

  2. Wenn du mit einer einfachen JS-Bibliothek arbeitest und diese erweitern möchtest, können Namespaces hilfreich sein. Dies gilt insbesondere, wenn die Bibliothek bereits Namespaces verwendet.

  3. Du kannst einen Namespace verwenden, um einen Teil des Codes zu kapseln und zu gruppieren, anstatt eine separate Datei zu erstellen. Ich empfehle dieses Muster jedoch nicht.

  4. Schliesslich kann ein Namespace mit einer Klasse verschmelzen, um eine Klasse zu erweitern.

Zusammenfassend lässt sich sagen, dass du Module den Namespaces vorziehen solltest. Vermeide Namespaces, es sei denn, du hast einen guten Grund, sie zu verwenden.

VorherigeAmbient TypesNächsteGlobals

Zuletzt aktualisiert vor 17 Tagen