25 Module in TypeScript

TypeScript unterstützt sowohl das ES2015-Modulsystem als auch das CommonJS-Modulsystem. Dies ermöglicht die Verwendung von import und export, um Code zwischen verschiedenen Dateien zu teilen. Module sind eine Schlüsselfunktion in TypeScript, die es ermöglichen, Code in mehrere Dateien aufzuteilen und so die Wiederverwendbarkeit und Wartbarkeit des Codes zu verbessern. Module können Klassen, Funktionen, Interfaces und Variablen exportieren und importieren.

In TypeScript verwendet man das export Schlüsselwort, um Teile eines Moduls öffentlich zugänglich zu machen, und das import Schlüsselwort, um öffentliche Teile eines anderen Moduls zu verwenden.

25.0.1 Beispiel für eine tsconfig.json mit esModuleInterop

Um eine reibungslose Interoperabilität mit CommonJS-Modulen zu gewährleisten, ist es wichtig, den esModuleInterop-Flag in der tsconfig.json-Datei zu setzen:

{
  "compilerOptions": {
    "module": "CommonJS",
    "target": "ES2015",
    "esModuleInterop": true
  }
}

Dieser Flag ermöglicht es, CommonJS-Module in einer Weise zu importieren, die mit der standardmäßigen ES2015-Syntax kompatibel ist.

25.0.2 Einfache Module

car.ts

export class Car {
  constructor(public color: string, public year: number) {}
}

In diesem Modul car.ts wird eine Klasse Car definiert und exportiert.

main.ts

import { Car } from './car';

let myCar = new Car('red', 2022);
console.log(myCar.color);  // Ausgabe: "red"
console.log(myCar.year);   // Ausgabe: 2022

In diesem Modul main.ts wird die Klasse Car aus dem Modul car.ts importiert und verwendet.

25.0.3 Mehrfachexporte und -importe

vehicles.ts

export class Car {
  constructor(public color: string, public year: number) {}
}

export class Motorcycle {
  constructor(public make: string) {}
}

main.ts

import { Car, Motorcycle } from './vehicles';

let myCar = new Car('red', 2022);
let myMotorcycle = new Motorcycle('Harley-Davidson');

25.0.4 Gesamte Module importieren

main.ts

import * as vehicles from './vehicles';

let myCar = new vehicles.Car('red', 2022);
let myMotorcycle = new vehicles.Motorcycle('Harley-Davidson');

Module in TypeScript sind eine leistungsfähige Funktion, die dazu beiträgt, den Code gut organisiert, sauber und wartbar zu halten. Sie ermöglichen es, Code in logische Einheiten aufzuteilen und die Sichtbarkeit von Code innerhalb dieser Einheiten zu kontrollieren.