0Pricing
TypeScript Academy · Lektion

Interface vs. Type: Wann welches verwenden

Wählen Sie je nach Szenario zwischen interface und type.

Interface vs. Type: Wann welches verwenden ist eine kostenlose TypeScript Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. 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 4 Lektionen.

Willkommen

Sowohl `interface` als auch `type` beschreiben Objektstrukturen. Sie sind ähnlich, weisen aber wichtige Unterschiede auf. Diese Lektion hilft Ihnen, die richtige Variante auszuwählen.

Gemeinsamkeiten

Beide können Objektstrukturen beschreiben, optionale und readonly-Eigenschaften enthalten, als Parametertypen von Funktionen verwendet werden und Generics unterstützen.
interface A { x: number; }
type B = { x: number; };
// Both describe the same shape

Wichtiger Unterschied: Deklarationszusammenführung

Interfaces unterstützen die Deklarationszusammenführung. Typaliase unterstützen sie nicht – die erneute Deklaration eines Typalias ist ein Fehler.
interface Config { host: string; }
interface Config { port: number; } // OK — merged

type Settings = { host: string; };
// type Settings = { port: number; }; // Error

Wichtiger Unterschied: Union- und Schnittmengen-Typen

Typaliase können Union-Typen, Schnittmengen, primitive Typen und Tupel beschreiben. Interfaces können nur Objektstrukturen beschreiben.
type ID = string | number;        // union — only with type
type Nullable<T> = T | null;       // union — only with type
type Point = [number, number];     // tuple — only with type

Wichtiger Unterschied: Berechnete Eigenschaften

Typaliase können gemappte und bedingte Typen verwenden, um ihre Struktur zu berechnen. Interfaces können diese nicht direkt verwenden.
type ReadonlyUser = Readonly<{ name: string; age: number }>; // mapped type
type Keys = keyof User; // only with type

interface für Klassenverträge verwenden

Interfaces lassen sich über `implements` natürlich in Klassen integrieren. Dadurch wird erzwungen, dass eine Klasse bestimmte Eigenschaften und Methoden bereitstellt.
interface Repository<T> {
  findById(id: number): T | null;
  save(item: T): void;
}
class UserRepo implements Repository<User> { /* ... */ }

Leistung: interfaces vs. types

Intern speichert TypeScript Prüfungen von Interface-Strukturen effizienter zwischen als komplexe Typalias-Ausdrücke. Bevorzugen Sie bei großen Objektstrukturen `interface`.

Unterschiedliche Fehlermeldungen

Bei einer Typabweichung zeigen Interfaces in Fehlermeldungen häufig den Namen des Interfaces an, während Typaliase die aufgelöste Struktur anzeigen. Fehler bei Interfaces sind in der Regel besser lesbar.

Offizielle Empfehlung von TypeScript

Das TypeScript-Team empfiehlt, `interface` zu verwenden, bis Sie Funktionen benötigen, die `type` voraussetzen. Dies ist die dokumentierte Best Practice des Teams.

Konsistenz im Team ist am wichtigsten

Viele Teams wählen eine Variante und verwenden sie aus Gründen der Konsistenz überall. Die freie Mischung beider Varianten in einem Projekt kann verwirrend sein. Ein Styleguide hilft dabei.

Zusammenfassende Entscheidungstabelle

Verwenden Sie interface für: Objekte, Klassen und Bibliothekserweiterungen. Verwenden Sie type für: Union-Typen, Schnittmengen, Tupel, primitive Typen, gemappte Typen und bedingte Typen.
// interface
interface User { name: string; age: number; }

// type (union)
type ID = string | number;

// type (tuple)
type Coord = [number, number];

Schnellüberprüfung

Welche Konstruktion ist erforderlich, um einen Union-Typ wie `string | number` zu erstellen?

Zusammenfassung

Verwenden Sie interface für Objektstrukturen, Klassenverträge und Bibliothekserweiterungen. Verwenden Sie type für Union-Typen, Schnittmengen, Tupel und berechnete Typen. Wenn Sie unsicher sind, empfiehlt das TypeScript-Team für Objektstrukturen `interface`.

Häufig gestellte Fragen

Ist die Lektion „Interface vs. Type: Wann welches verwenden“ kostenlos?

Ja — der vollständige Text von „Interface vs. Type: Wann welches verwenden“ 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 4 Lektionen.

Was lerne ich in „Interface vs. Type: Wann welches verwenden“?

Wählen Sie je nach Szenario zwischen interface und type. 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 4 von 4.

Wie lange dauert die Lektion „Interface vs. Type: Wann welches verwenden“?

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. Objektstrukturen mit Interfaces definieren
  2. Typ-Aliase für komplexe Typen
  3. Interface-Erweiterung und -Zusammenführung
  4. Interface vs. Type: Wann welches verwenden
← Zurück zu TypeScript Academy