Funktionsüberladung in TypeScript: Wie deklariert und verwendet man sie richtig?
Hallo zusammen! Ich habe gerade angefangen, TypeScript nach JavaScript zu lernen, und bin auf ein für mich unklares Thema gestoßen — Funktionsüberladung (function overloading).
In JavaScript bin ich es gewohnt, Funktionen zu schreiben, die verschiedene Argumenttypen akzeptieren können, und sie intern mit `typeof` oder `instanceof` zu überprüfen. Zum Beispiel habe ich eine Funktion, die entweder einen String oder eine Zahl akzeptieren soll und je nachdem verschiedene Operationen ausführt. In JS habe ich das so gemacht:
```typescript
function format(input) {
if (typeof input === 'string') {
return input.trim();
} else if (typeof input === 'number') {
return input.toFixed(2);
}
}
```
Aber in TypeScript möchte ich die Typen für diese Funktion beschreiben. Ich habe versucht, Folgendes zu schreiben:
```typescript
function format(input: string | number): string {
// ...
}
```
Das funktioniert, aber ich habe gehört, dass es in TypeScript "echte" Funktionsüberladung gibt, wie in C++ oder Java. Ich habe es so versucht:
```typescript
function format(input: string): string;
function