Ty­pe­Script Classes bieten eine klare und struk­tu­rier­te Mög­lich­keit, Daten und Verhalten in einem Objekt zu or­ga­ni­sie­ren. So können Sie Entitäten und Konzepte in Ihrem Code leichter mo­del­lie­ren.

Wozu dienen Ty­pe­Script Classes?

Klassen sind ein Schlüs­sel­kon­zept der Pro­gram­mier­spra­che Ty­pe­Script, die auf Ja­va­Script aufbaut. Sie stellen eine struk­tu­rier­te Methode zur De­fi­ni­ti­on von Objekten und zur Anwendung ob­jekt­ori­en­tier­ter Pro­gram­mie­rung (OOP) dar. Ty­pe­Script Classes ähneln Bauplänen für die Erzeugung von Objekten, die logisch zu­sam­men­hän­gen­de Daten und Methoden bündeln.

Ty­pe­Script enthält alle Funk­tio­nen von Ja­va­Script und umfasst zu­sätz­lich statische Ty­pi­sie­rung. So können Sie Da­ten­ty­pen für Ty­pe­Script Functions, -Variablen und -Klassen angeben, um Fehler bei der Kom­pi­lier­zeit zu erkennen. Ty­pe­Script-Klassen un­ter­stüt­zen neben Typ­si­cher­heit auch Konzepte wie Vererbung und Abs­trak­ti­on, was die Ent­wick­lung von komplexen An­wen­dun­gen er­leich­tert.

Mit Ty­pe­Script Classes können Sie eine klare Hier­ar­chie von Klassen erstellen, die Ei­gen­schaf­ten und Methoden erben. So fördern Sie die Code-Wie­der­ver­wen­dung und Struk­tu­rie­rung. Kon­struk­to­ren in Klassen er­mög­li­chen dabei die In­itia­li­sie­rung von Instanzen und die Si­cher­stel­lung einer kon­sis­ten­ten Ob­jekt­er­zeu­gung.

Das ist die Syntax von Ty­pe­Script Classes

Die Schreib­wei­se von Ty­pe­Script-Klassen ähnelt der von EC­MA­Script 6 (ES6) und ist eine erweitere Version der Ja­va­Script-Klas­sen­syn­tax. Eine Klasse in Ty­pe­Script kann ver­schie­de­ne Elemente be­inhal­ten, um die Struktur und das Verhalten von Objekten zu de­fi­nie­ren. Die we­sent­li­chen Haupt­be­stand­tei­le sind:

  • Ei­gen­schaf­ten
  • Kon­struk­tor
  • Methoden

Ei­gen­schaf­ten

Ei­gen­schaf­ten (Pro­per­ties) bestimmen den Zustand eines Objekts. Sie speichern Da­ten­wer­te und können mit Da­ten­ty­pen annotiert werden, damit sie nur gültige Werte aufweisen.

class ClassName {
    propertyName: propertyType;
}
ty­pe­script
  • ClassName: Der Name der Klasse
  • pro­per­ty­Na­me: Der Name der Ei­gen­schaft, die Sie de­fi­nie­ren möchten
  • pro­per­ty­Ty­pe: Der Datentyp der Ei­gen­schaft

Hier ist ein konkretes Beispiel:

class Person {
    name: string;
}
ty­pe­script

Zuerst wird eine Klasse Person mit einer Ei­gen­schaft name vom Typ string definiert. Dies bedeutet, dass Instanzen der Person-Klasse eine Ei­gen­schaft name haben, die Zei­chen­ket­ten (Strings) speichert.

Kon­struk­tor

Der Kon­struk­tor in Ty­pe­Script ist eine spezielle Methode, die beim Erzeugen einer Instanz (eines Objekts) einer Klasse auf­ge­ru­fen wird. Sie benötigen ihn, um die In­itia­li­sie­rung der Ei­gen­schaf­ten (Pro­per­ties) eines Objekts durch­zu­füh­ren. Im We­sent­li­chen legt der Kon­struk­tor den An­fangs­zu­stand einer Instanz fest. Sie können Parameter im Kon­struk­tor angeben, um Werte bei der In­stan­zi­ie­rung von Ty­pe­Script Classes zu über­mit­teln.

Die grund­le­gen­de Syntax eines Kon­struk­tors in Ty­pe­Script lautet:

class ClassName {
    constructor(parameter1: Type1, parameter2: Type2, ...) {
    }
}
ty­pe­script
  • con­s­truc­tor: Jede Klasse kann einen einzigen Kon­struk­tor haben. Wenn kein Kon­struk­tor definiert ist, wird stan­dard­mä­ßig ein leerer Kon­struk­tor erstellt.
  • parameter: Type: Die Parameter sind optional, abhängig von der Klasse und ihren An­for­de­run­gen. Die Parameter sollten mit ihren Da­ten­ty­pen ge­kenn­zeich­net werden.

Ein Beispiel für einen Kon­struk­tor:

class Person {
    firstName: string;
    lastName: string;
    constructor(firstName: string, lastName: string) {
        this.firstName = firstName;
        this.lastName = lastName;
    }
}
ty­pe­script

In unserem Beispiel hat die Klasse Person einen Kon­struk­tor, der zwei Parameter firstName und lastName ak­zep­tiert. Beim Erstellen einer Instanz dieser Klasse werden diese Parameter übergeben, und der Kon­struk­tor in­itia­li­siert die Ei­gen­schaf­ten firstName und lastName der Instanz mit den ent­spre­chen­den Werten. Das Schlüs­sel­wort this bezieht sich auf die aktuelle Instanz der Klasse, auf der der Code aus­ge­führt wird.

Methoden

In Ty­pe­Script sind Methoden Funk­tio­nen, die in Klassen definiert und auf deren Instanzen an­ge­wen­det werden können. Methoden erlauben Ihnen, bestimmte Aktionen oder Ope­ra­tio­nen im Kontext einer Klasse durch­zu­füh­ren.

class ClassName {
    // ...
    methodName(parameter1: Type1, parameter2: Type2, ...): ReturnType {
    }
    // ...
}
ty­pe­script
  • me­thod­Na­me: Name der Methode
  • parameter: Type: Optionale Parameter, die die Methode ak­zep­tiert
  • Re­turn­Ty­pe: Dies ist der Datentyp, der bestimmt, welchen Wert die Methode zu­rück­gibt. Wenn die Methode nichts zu­rück­gibt, können Sie void angeben.

Um auf eine Ei­gen­schaft zu­zu­grei­fen oder eine Methode auf einer Instanz einer Klasse auf­zu­ru­fen, benutzen Sie den Punkt­ope­ra­tor ., gefolgt von dem Me­tho­den­na­men und den er­for­der­li­chen Ar­gu­men­ten, falls die Methode Parameter erwartet.

class Person {
    firstName: string;
    lastName: string;
    constructor(firstName: string, lastName: string) {
        this.firstName = firstName;
        this.lastName = lastName;
    }
    getFullName(): string {
        return this.firstName + " " + this.lastName;
    }
}
const person = new Person("John", "Doe");
const fullName = person.getFullName();
ty­pe­script

Die Methode getFullName dient dazu, den vollen Namen der Person zu erstellen und zu­rück­zu­ge­ben. Sie greift auf die Werte der Ei­gen­schaf­ten firstName und lastName zu, die in der Klasse definiert und im Kon­struk­tor in­itia­li­siert wurden. Das Objekt person wird durch das Schlüs­sel­wort new gefolgt vom Klas­sen­na­men und den je­wei­li­gen Pa­ra­me­tern erzeugt. Die Methode kon­ka­te­niert beim Aufruf die beiden Zei­chen­ket­ten und gibt den vollen Namen als String zurück. Die Ausgabe für das Objekt person lautet daher „John Doe“.

Beispiele für die Anwendung von Ty­pe­Script Classes

Ty­pe­Script-Klassen besitzen ver­schie­de­ne Me­cha­nis­men, um die Struktur und das Verhalten von Objekten zu or­ga­ni­sie­ren und zu steuern. Im Folgenden stellen wir Ihnen einige Konzepte für den Einsatz von Ty­pe­Script Classes vor.

Sicht­bar­keit

Sicht­bar­keit in Ty­pe­Script-Klassen regelt den Zugriff auf Ei­gen­schaf­ten und Methoden innerhalb und außerhalb der Klasse. Ty­pe­Script bietet drei Sicht­bar­keits­mo­di­fi­ka­to­ren: public, private und protected.

  • public (Standard): Mit public ge­kenn­zeich­ne­te Ei­gen­schaf­ten und Methoden können von überall, sowohl innerhalb als auch außerhalb der Klasse, auf­ge­ru­fen werden.

  • private: private bezieht sich auf Ei­gen­schaf­ten und Methoden, die nur innerhalb der Klasse selbst auf­ge­ru­fen werden können. Sie sind für externe Code-Teile un­zu­gäng­lich.

  • protected: Mit protected versehene Ei­gen­schaf­ten und Methoden können von der Klasse selbst und von ab­ge­lei­te­ten Klassen (in der Vererbung) auf­ge­ru­fen werden, aber nicht von externem Code.

class Person {
    private socialSecurityNumber: string;
    constructor(ssn: string) {
        this.socialSecurityNumber = ssn;
    }
    greet() {
        console.log("Hello, I am a person with SSN: " + this.socialSecurityNumber);
    }
}
const person = new Person("123-45-6789");
person.greet();
ty­pe­script

In diesem Beispiel ist socialSecurityNumber eine private Ei­gen­schaft, auf die nur innerhalb der Klasse Person zu­ge­grif­fen werden kann. Die Methode greet können Sie aber von außerhalb aufrufen.

Vererbung

Vererbung ist ein grund­le­gen­des Konzept in der ob­jekt­ori­en­tier­ten Pro­gram­mie­rung (OOP), das in Ty­pe­Script und vielen anderen Internet-Pro­gram­mier­spra­chen ein­ge­setzt wird. Es er­mög­licht die Schaffung einer neuen Klasse auf der Grundlage einer be­stehen­den Ba­sis­klas­se oder Su­per­klas­se. Die ab­ge­lei­te­te Klasse (Subklasse) erbt dabei die Ei­gen­schaf­ten und Methoden der Ba­sis­klas­se und kann diese erweitern oder anpassen.

class Animal {
    name: string;
    constructor(name: string) {
        this.name = name;
    }
    makeSound() {
        console.log("Some generic sound");
    }
}
class Dog extends Animal {
    makeSound() {
        console.log(this.name + " barks");
    }
}
const myDog = new Dog("Buddy");
myDog.makeSound();
ty­pe­script

Hier erbt die Klasse Dog von der Ba­sis­klas­se Animal mithilfe des Schlüs­sel­worts extends. Die ab­ge­lei­te­te Klasse Dog über­schreibt die Methode makeSound, um ein spe­zi­fi­sches Verhalten hin­zu­zu­fü­gen, während sie die Ei­gen­schaft name von Animal übernimmt.

Readonly

Das readonly-Schlüs­sel­wort können Sie benutzen, um Ei­gen­schaf­ten von Ty­pe­Script Classes oder Objekten als schreib­ge­schützt zu de­kla­rie­ren. Das bedeutet, dass nach der In­itia­li­sie­rung einer schreib­ge­schütz­ten Ei­gen­schaft ihr Wert nicht mehr geändert werden kann.

class Circle {
    readonly pi: number = 3.14159;
    radius: number;
    constructor(radius: number) {
        this.radius = radius;
    }
    getArea() {
        return this.pi *this.radius* this.radius;
    }
}
const myCircle = new Circle(5);
console.log(myCircle.getArea()); // Output: ≈ 78,54
ty­pe­script

Die Ei­gen­schaft pi ist in unserem Beispiel schreib­ge­schützt und wird im Kon­struk­tor in­itia­li­siert. Nach der In­itia­li­sie­rung kann pi nicht mehr geändert werden. Wenn Sie versuchen, den Wert von pi nach der In­itia­li­sie­rung zu mo­di­fi­zie­ren, wird Ty­pe­Script einen Kom­pi­lie­rungs­feh­ler ge­ne­rie­ren.

KI-Assistent kostenlos – Ihr smarter All­tags­hel­fer
  • DSGVO-konform & sicher gehostet in Deutsch­land
  • Pro­duk­ti­vi­tät steigern – weniger Aufwand, mehr Output
  • Direkt im Browser starten – ohne In­stal­la­ti­on
Zum Hauptmenü