ES Modules ·
Namespaces ·
import / export ·
default export ·
ambient declarations ·
d.ts
TypeScript unterstützt sowohl ES-Module (modern) als auch Namespaces (klassisch) für die Organisation von Code. Diese Konzepte sind essenziell für die Entwicklung skalierbarer Anwendungen.
ES Modules sind der moderne Standard für die Code-Organisation in TypeScript. Sie verwenden export und import und werden von allen gängigen Build-Tools unterstützt.
| Syntax | Beschreibung |
|---|---|
| export const x = ... | Benannter Export |
| export { x, y } | Benannter Export (Liste) |
| export default x | Standard-Export (ein pro Modul) |
| export * from "./module" | Alle Exporte weiterleiten |
| export { x as y } | Export mit Alias |
Namespaces sind die klassische Methode zur Code-Organisation in TypeScript. Sie gruppieren Code logisch und vermeiden globale Namenskonflikte. Sie werden heute oft durch ES Modules ersetzt.
Import ist der Mechanismus, um Funktionen, Klassen oder Variablen aus anderen Modulen zu laden. TypeScript unterstützt verschiedene Import-Syntaxen für unterschiedliche Anwendungsfälle.
await import()) ermöglichen Code Splitting und lazy loading – besonders nützlich für große Anwendungen.
Export definiert, welche Teile eines Moduls von außen verwendet werden können. TypeScript unterstützt benannte Exports, Default-Exports und die Weiterleitung von Exports.
export default für die Hauptfunktion oder Hauptklasse eines Moduls. Verwenden Sie benannte Exports für Hilfsfunktionen und Konstanten.
Default Export ermöglicht es, dass ein Modul genau einen Haupt-Export bereitstellt. Der Import erfolgt ohne geschweifte Klammern und kann beliebig benannt werden.
Ambient Declarations beschreiben die Typen von existierendem JavaScript-Code – ohne ihn zu kompilieren. Sie werden in .d.ts-Dateien definiert und ermöglichen die Typsicherheit für externe Bibliotheken.
@types-Pakete für gängige Bibliotheken (z.B. npm i --save-dev @types/node). Für eigene JS-Bibliotheken erstellen Sie .d.ts-Dateien manuell.
ESM
ns
import
export
default
d.ts
export const x = 1 ·
import { x } from "./module" ·
export default class MyClass