Thomas Claudius Huber Trivadis AG

Parameter Properties sind eine Kurzform zum Erstellen einer Property, die direkt mit einem Konstruktorparameter initialisiert wird.

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#.

TypeScript bietet mit Interfaces 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.

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
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-Funktion als Typ angeben. Wird ein Objekt ohne firstName Property an die getFullName-Methode übergeben, führt dies zu einem Compile-Fehler. Darüber hinaus ist der Typ auf dem Parameter sehr aufschlussreich, was an die Funktion zu übergeben ist. Einen Kommentar zur Dokumentation benötigt es nicht. Zudem bietet der Typ alle Infos für Codeeditoren wie Visual Studio Code, um beim Aufruf der Methode IntelliSense für den Parameter anzuzeigen. Das heißt, wird beim Aufruf ein Objekt mit der JSON-Syntax erstellt, zeigt Visual Studio Code IntelliSense für die beiden Properties firstName und lastName.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Windows Developer 6.17 - "ASP.NET Core im Einsatz"

Alle Infos zum Heft
579797394Objektorientierte Programmierung mit TypeScript
X
- Gib Deinen Standort ein -
- or -