So verwenden Sie TypeScript-Klassen mit einfachen Beispielen

TypeScript ergänzt JavaScript um leistungsstarke Funktionen, darunter das Konzept der Klassen, das objektorientierte Programmierung ermöglicht. Klassen bieten eine Blaupause für die Erstellung von Objekten, die Einkapselung von Daten und die Definition von Verhaltensweisen. Dieser Leitfaden führt Sie anhand einfacher Beispiele durch die Grundlagen von TypeScript-Klassen.

Was ist eine Klasse?

Eine Klasse ist eine Blaupause zum Erstellen von Objekten mit vordefinierten Eigenschaften und Methoden. Sie hilft beim Organisieren von Code, fördert die Wiederverwendbarkeit und erstellt skalierbare Anwendungen. Klassen in TypeScript funktionieren ähnlich wie Klassen in anderen objektorientierten Programmiersprachen.

Definieren einer Basisklasse

Um eine Klasse in TypeScript zu definieren, verwenden Sie das Schlüsselwort class, gefolgt vom Klassennamen und einer Reihe geschweifter Klammern, die Eigenschaften und Methoden enthalten.

Beispiel einer Basisklasse

Unten sehen Sie ein Beispiel einer einfachen Person-Klasse mit Eigenschaften und einer Methode:

class Person {
  name: string;
  age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  greet(): void {
    console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
  }
}

const person1 = new Person("Alice", 30);
person1.greet(); // Output: Hello, my name is Alice and I am 30 years old.

In diesem Beispiel hat die Klasse Person zwei Eigenschaften: name und age. Die Konstruktormethode initialisiert diese Eigenschaften und die Methode greet gibt eine Begrüßungsnachricht aus.

Zugriffsmodifizierer

TypeScript bietet drei Zugriffsmodifikatoren, um die Sichtbarkeit von Klassenmitgliedern zu steuern:

  • public: Mitglieder sind von überall erreichbar (Standard).
  • private: Mitglieder sind nur innerhalb der Klasse zugänglich.
  • protected: Auf die Mitglieder kann innerhalb der Klasse und ihrer Unterklassen zugegriffen werden.

Verwenden von Zugriffsmodifizierern

So können Sie Zugriffsmodifikatoren in einer TypeScript-Klasse verwenden:

class Animal {
  public name: string;
  private age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  public getAge(): number {
    return this.age;
  }
}

const dog = new Animal("Buddy", 5);
console.log(dog.name); // Output: Buddy
console.log(dog.getAge()); // Output: 5
// console.log(dog.age); // Error: 'age' is private and only accessible within class 'Animal'.

In diesem Beispiel ist Name eine öffentliche Eigenschaft, auf die von außerhalb der Klasse zugegriffen werden kann, während Alter eine private Eigenschaft ist, auf die nur innerhalb der Klasse zugegriffen werden kann.

Vererbung in TypeScript

TypeScript unterstützt Vererbung, wodurch eine Klasse Eigenschaften und Methoden von einer anderen Klasse erben kann. Dies hilft bei der Wiederverwendung von Code und beim Erstellen einer Klassenhierarchie.

Vererbungsbeispiel

Unten sehen Sie ein Beispiel einer Klasse Hund, die von einer Basisklasse Tier erbt:

class Animal {
  constructor(public name: string) {}

  makeSound(): void {
    console.log(`${this.name} makes a sound.`);
  }
}

class Dog extends Animal {
  constructor(name: string) {
    super(name); // Call the constructor of the base class
  }

  makeSound(): void {
    console.log(`${this.name} barks.`);
  }
}

const dog = new Dog("Buddy");
dog.makeSound(); // Output: Buddy barks.

In diesem Beispiel erweitert die Klasse Dog die Klasse Animal und überschreibt die Methode makeSound.

Getter und Setter

Mit TypeScript können Sie Getter und Setter für Eigenschaften definieren und so einen kontrollierten Zugriff auf Klassenmitglieder ermöglichen.

Beispiel für Getter und Setter

class Person {
  private _name: string;

  constructor(name: string) {
    this._name = name;
  }

  get name(): string {
    return this._name;
  }

  set name(newName: string) {
    if (newName) {
      this._name = newName;
    } else {
      console.log("Name cannot be empty.");
    }
  }
}

const person = new Person("Alice");
console.log(person.name); // Output: Alice
person.name = "Bob";
console.log(person.name); // Output: Bob

In diesem Beispiel wird auf die Eigenschaft name mit Getter- und Setter-Methoden zugegriffen und sie wird geändert.

Abschluss

TypeScript-Klassen sind eine leistungsstarke Möglichkeit, objektorientierten Code sauber und effizient zu schreiben. Sie bieten eine strukturierte Möglichkeit, Eigenschaften, Methoden, Zugriffsmodifikatoren, Vererbung und mehr zu definieren. Wenn Sie verstehen, wie Sie TypeScript-Klassen verwenden, können Sie robusteren und wartungsfreundlicheren Code für Ihre Anwendungen schreiben.