© paseven/Shutterstock.com
Teil 3: TypeScript - Interfaces, Klassen und Generics

Objektorientierte Programmierung


TypeScript bietet alle Konstrukte, um objektorientiert zu programmieren. Mit Interfaces und Klassen lässt sich robuster Code schreiben. Dabei bietet TypeScript insbesondere beim Erstellen von Klassen einige interessante Konzepte, die es so in der C#-Welt bisher nicht gibt, wie beispielsweise Parameter Properties. Parameter Properties sind eine Kurzform zum Erstellen einer Property, die direkt mit einem Konstruktorparameter initialisiert wird. Neben den Grundlagen zu Interfaces und Klassen geht dieser Artikel auch auf Generics ein und zeigt zudem, was bezüglich Typen in TypeScript anders ist als in C#.

Artikelserie

Teil 1: TypeScript – Grundlagen für .NET-Entwickler

Teil 2: Von „number“ über Arrays bis „undefined“

Teil 3: TypeScript – Interfaces, Klassen und Generics

Teil 4: TypeScript – Funktionen

Teil 5: TypeScript – Module

Teil 6: TypeScript – Decorators

Teil 7: TypeScript in Angular

TypeScript bietet mit Interfaces [1] ein Konstrukt an, das C#-Entwicklern bekannt ist. Ein Interface stellt eine Art Vertrag dar. Es wird genutzt, um klare Abgrenzungen im Code zu erstellen. Wird das Interface nicht eingehalten, führt dies in TypeScript – wie auch in C# – zu einem Compile-Fehler. Wie so oft in der Welt der Softwareentwicklung sagt nicht ein Bild, sondern ein Beispiel mehr als tausend Worte: Listing 1 zeigt die getFullName-Funktion. Sie besitzt einen friend-Parameter. Intern wird der Wert der firstName Property in der fullName-Variablen gespeichert. Ist auf dem friend-Objekt auch eine lastName Property vorhanden, wird dieser Wert dem Wert der fullName-Variablen angehängt. Anschließend wird der Wert der fullName-Variablen aus der Funktion zurückgegeben.

Listing 1

function getFullName(friend) { let fullName = friend.firstName; if(friend.lastName) { fullName += " " + friend.lastName; } return fullName; }

Der JavaScript-Code aus Listing 1 hat den Nachteil, dass an die Methode ein x-beliebiges Objekt übergeben werden kann, da der friend-Parameter keinen Typ hat. Zudem ist ohne Blick auf den Methodenkörper nicht klar, dass der friend-Parameter eine firstName Property und eine optionale lastName Property haben sollte. Es braucht in JavaScript folglich Kommentare zur Dokumentation. In TypeScript kann ein Interface das Problem lösen. Dabei werden optionale Properties mit einem Fragezeichen nach dem Property-Namen deklariert. Listing 2 zeigt das Friend-Interface, dessen lastName Property optional ist. Das Interface lässt sich auf dem Parameter der getFullName-Funkt...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang