Menu
Coddy logo textTech

Erweitern von Interfaces und Typen

Teil des Abschnitts Einführung in TypeScript der JavaScript-Journey von Coddy. Lektion 42 von 73.

Anstatt Code zu duplizieren, bietet TypeScript leistungsstarke Mechanismen, um neue Typen auf der Grundlage bestehender Typen durch Vererbung zu erstellen.

Für Schnittstellen kannst du das Schlüsselwort extends verwenden, um eine neue Schnittstelle zu erstellen, die alle Eigenschaften von einer Basisschnittstelle erbt:

interface Vehicle {
  brand: string;
  year: number;
}

interface Car extends Vehicle {
  doors: number;
}

// Car now has: brand, year, and doors

Für Typ-Aliase erzielst du dasselbe Ergebnis, indem du Schnittmengentypen mit dem Operator & verwendest:

type Vehicle = {
  brand: string;
  year: number;
};

type Car = Vehicle & {
  doors: number;
};

// Car has the same properties as the interface example

Beide Ansätze erstellen neue Typen, die alle Eigenschaften des Basistyps sowie alle von Ihnen definierten zusätzlichen Eigenschaften enthalten. Dies fördert die Wiederverwendbarkeit von Code und hilft dabei, die Konsistenz über verwandte Typen in Ihrer Anwendung hinweg zu wahren.

challenge icon

Aufgabe

Einfach

Erstelle ein Basis-Interface namens Employee mit den folgenden Eigenschaften:

  • id vom Typ number
  • name vom Typ string
  • department vom Typ string

Erstelle ein Interface namens Manager, das Employee erweitert und die folgenden Eigenschaften hinzufügt:

  • teamSize vom Typ number
  • budget vom Typ number

Erstelle einen Typalias namens Contact mit den folgenden Eigenschaften:

  • email vom Typ string
  • phone vom Typ string

Erstelle mithilfe von Schnittmengentypen einen Typalias namens Developer, der Employee und Contact kombiniert und die folgenden Eigenschaften hinzufügt:

  • programmingLanguages vom Typ string[]
  • yearsExperience vom Typ number

Erstelle mithilfe deiner Interfaces und Typen die folgenden Variablen:

  • Erstelle eine Variable namens teamLead vom Typ Manager mit der ID 101, dem Namen "Alice Johnson", der Abteilung "Engineering", der Teamgröße 8 und dem Budget 250000
  • Erstelle eine Variable namens softwareDev vom Typ Developer mit der ID 102, dem Namen "Bob Smith", der Abteilung "Engineering", der E-Mail-Adresse "bob.smith@company.com", der Telefonnummer "555-0123", den Programmiersprachen ["TypeScript", "Python", "Java"] und 5 Jahren Berufserfahrung

Erstelle eine Funktion namens getManagerSummary, die einen Parameter vom Typ Manager akzeptiert und einen string im Format "[name] manages [teamSize] people with a budget of $[budget]" zurückgibt.

Erstelle eine Funktion namens getDeveloperSkills, die einen Parameter vom Typ Developer akzeptiert und einen string im Format "[name] knows [programmingLanguages joined with ', '] ([yearsExperience] years experience)" zurückgibt.

Gib die folgenden Ausgaben in separaten Zeilen aus:

  • Rufe getManagerSummary mit teamLead auf und gib das Ergebnis aus
  • Rufe getDeveloperSkills mit softwareDev auf und gib das Ergebnis aus
  • Gib die Abteilung von teamLead aus
  • Gib die E-Mail-Adresse von softwareDev aus

Probier es selbst

// TODO: Schreibe deinen Code hier

// Erstelle das Employee-Interface

// Erstelle das Manager-Interface, das Employee erweitert

// Erstelle den Contact-Typ-Alias

// Erstelle den Developer-Typ-Alias unter Verwendung von Intersection-Typen

// Erstelle die Variable teamLead vom Typ Manager

// Erstelle die Variable softwareDev vom Typ Developer

// Erstelle die Funktion getManagerSummary

// Erstelle die Funktion getDeveloperSkills

// Gib die erforderlichen Ausgaben aus
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Einführung in TypeScript

Übe selbstständig: Online-JavaScript-Compiler