0Pricing
TypeScript Academy · Lektion

Funktionsüberladungen und Aufrufsignaturen

Deklarieren Sie Überladungssignaturen für verschiedene Aufrufformen und verwenden Sie Aufrufsignaturen in Objekttypen für flexible APIs.

Funktionsüberladungen und Aufrufsignaturen ist eine kostenlose TypeScript Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des TypeScript Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der TypeScript Academy-Kurs umfasst insgesamt 3 Lektionen.

Einführung

Ziel: Modellieren Sie mit overloads Funktionen, die unterschiedliche Eingaben akzeptieren und unterschiedliche Ausgaben zurückgeben, und beschreiben Sie call signatures in Objekttypen für callbackartige APIs.

Overload-Muster

Overloads werden als mehrere Signaturen sowie eine Implementierung deklariert, die Eingaben eingrenzt und den korrekten Typ zurückgibt.

// 1) Overload signatures (no body)
function parse(input: string): number;
function parse(input: number): string;
// 2) Single implementation compatible with all overloads
function parse(input: string | number): string | number {
  if (typeof input === "string") {
    return input.length; // string -> number
  } else {
    return String(input); // number -> string
  }
}

console.log(parse("TS"));   // 2 (number)
console.log(parse(123));    // "123" (string)

Aufrufsignaturen

Eine Aufrufsignatur ermöglicht, dass ein Objekttyp mit Überladungen aufrufbar ist (nützlich für Bibliotheken, die aufrufbare Funktionen mit Eigenschaften bereitstellen).

type Stringify = {
  (v: number): string;
  (v: boolean): string;
};

const toStr: Stringify = (v: number | boolean) => {
  return typeof v === "number" ? v.toFixed(1) : (v ? "true" : "false");
};

console.log(toStr(3));
console.log(toStr(false));

Narrowing in der Implementierung

Die Implementierung muss alle Überladungsformen verarbeiten. Verwenden Sie in-Prüfungen oder diskriminierte Unions, um sicher zu verzweigen.

function area(value: { r: number } | { w: number; h: number }): number {
  if ("r" in value) {
    return Math.PI * value.r ** 2; // circle
  }
  return value.w * value.h; // rect
}

console.log(area({ r: 2 }));
console.log(area({ w: 3, h: 4 }));

Überladungen vs. Unions

Überladungen vs. Unions:

  • Überladungen liefern pro Aufruf präzise Rückgabetypen.
  • Unions behalten eine Signatur bei und sind einfacher, aber weniger spezifisch.
  • Wählen Sie Überladungen, wenn Aufrufer von exakten Rückgabetypen profitieren.

DX-Tipps

Tipps:

  • Halten Sie die Anzahl der Überladungen gering und ihre Definitionen übersichtlich.
  • Dokumentieren Sie Unterschiede bei Parametern und Rückgabewerten.
  • Bevorzugen Sie präzise Rückgabetypen, wenn dadurch die Benutzerfreundlichkeit steigt.

Überladungsprüfung

Kurzer Test: Welches Muster deklariert Funktionsüberladungen korrekt?

Zusammenfassung

Zusammenfassung: Verwenden Sie Überladungen für präzise Typen pro Aufruf und Aufrufsignaturen, um aufrufbare Objekte zu modellieren. Grenzen Sie die Typen innerhalb der einzigen Implementierung ein, damit jeder Fall abgedeckt ist.

Häufig gestellte Fragen

Ist die Lektion „Funktionsüberladungen und Aufrufsignaturen“ kostenlos?

Ja — der vollständige Text von „Funktionsüberladungen und Aufrufsignaturen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des TypeScript Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der TypeScript Academy-Kurs umfasst insgesamt 3 Lektionen.

Was lerne ich in „Funktionsüberladungen und Aufrufsignaturen“?

Deklarieren Sie Überladungssignaturen für verschiedene Aufrufformen und verwenden Sie Aufrufsignaturen in Objekttypen für flexible APIs. Du übst TypeScript Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um TypeScript Academy zu starten?

Keine Vorkenntnisse erforderlich. TypeScript Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 3.

Wie lange dauert die Lektion „Funktionsüberladungen und Aufrufsignaturen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser TypeScript Academy-Lektion Code schreiben und ausführen?

Ja. Jede TypeScript Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Funktionsüberladungen und Aufrufsignaturen
  2. Typisierung des this-Parameters; void, never
  3. Assertionsfunktionen und benutzerdefinierte Type Guards
← Zurück zu TypeScript Academy