Avatar ·

Überladung von Konstruktoren in TypeScript: Wie implementiert man das richtig?

Hallo zusammen! Ich habe angefangen, TypeScript zu lernen, und bin auf das Problem der Konstruktorüberladung gestoßen. In anderen Sprachen (z.B. Java oder C#) bin ich es gewohnt, dass man mehrere Konstruktoren mit verschiedenen Parametern deklarieren kann. Aber in TypeScript funktioniert das nicht so. Angenommen, ich möchte eine Klasse `User` erstellen, die entweder mit einem String (email) oder einem Objekt mit Name und Alter initialisiert werden kann. Ich habe versucht, das so zu schreiben: ```typescript class User { constructor(email: string) { // ... } constructor(name: string, age: number) { // ... } } ``` Aber TypeScript gibt einen Fehler aus: "Duplicate function implementation". Ich verstehe, dass es in JavaScript keine echte Überladung gibt, aber wie macht man es dann? Ich brauche, dass die Klasse auf verschiedene Weisen erstellt werden kann: 1. `new User("john@example.com")` — nur email 2. `new User("John", 25)` — Name und Alter 3. `new User()` — leeres Objekt (Standardwerte) Wie implementiert man das richtig in TypeScript? Ich habe von union types, rest parameters gehört