Ü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