Klassenname in TypeScript abrufen

Migel Hewage Nimesha 30 Januar 2023
  1. TypeScript-Klassen und -Objekte
  2. Rufen Sie den Typ des TypeScript-Objekts zur Laufzeit ab
  3. Der Konstruktor des TypeScript-Objekts
Klassenname in TypeScript abrufen

Altes JavaScript beschäftigt sich mehr mit funktionaler Programmierung. Mit der Entwicklung von TypeScript, der Obermenge von JavaScript, begann es, objektorientierte Programmierfunktionen zu unterstützen.

Die grundlegende Terminologie hinter der objektorientierten Programmierung ist, dass ein Programm aus realen Einheiten besteht, die interagieren.

TypeScript-Klassen und -Objekte

TypeScript unterstützt die objektorientierte Programmierung mit dem class-Konzept. Eine Klasse ist eine Blaupause einer realen Entität, die zum Erstellen von Klasseninstanzen verwendet wird.

TypeScript-Klassen wurden von ES6 eingeführt. Eine Klasse besteht aus Feldern, Methoden und Konstruktoren.

class Animal {
    // properties/fields
    name: string;
    color: string;

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

    // methods/functions
    eat(): void {
        console.log("I am eating");
    }
}

Die Felder sind so definiert, dass sie den Namen und die Farbe eines Animal-Objekts speichern. Ein TypeScript-Konstruktor wird verwendet, um die Eigenschaften des Objekts zu initialisieren.

Es handelt sich um eine parametrierbare Sonderfunktion, wie im obigen Beispiel.

Mit der Klasse Animal ist es möglich, daraus Objekte zu erstellen. TypeScript verwendet das Schlüsselwort new, um neue Objekte aus einer bestimmten Klasse zu erstellen.

Da TypeScript eine stark typisierte Sprache ist, wird der Typ der neuen Animal-Instanzen vom Typ Animal sein.

let dog: Animal = new Animal('rocky');

Wie Sie sehen können, wurde der Konstruktor der Klasse Animal beim Erstellen der Instanz Animal aufgerufen. Der Klassenkonstruktor Animal akzeptiert einen String-Parameter, den wir beim Erstellen des Objekts übergeben mussten.

Rufen Sie den Typ des TypeScript-Objekts zur Laufzeit ab

Es gibt einige Szenarien, in denen Sie den Typ des TypeScript-Objekts zur Laufzeit kennen müssen. Nehmen wir an, wir haben eine Klasse namens Vehicle.

class Vehicle {
    vehicleNo: string;
    vehicleBrand: string

    constructor(vehicleNo: string, vehicleBrand: string) {
        this.vehicleNo = vehicleNo;
        this.vehicleBrand = vehicleBrand;
    }
}

Lassen Sie uns ein neues Vehicle-Objekt erstellen, miniCar.

let miniCar: Vehicle = new Vehicle('GH-123', 'AUDI');

Das miniCar ist ein Vehicle-Objekt, und sein Typ ist ein Vehicle. Wir können den Namen einer bestimmten Klasse überprüfen, indem wir die Eigenschaft name dieser Klasse verwenden.

Syntax:

<class_name>.name

Lassen Sie uns den Namen der Klasse Vehicle überprüfen.

console.log(Vehicle.name);

Ausgabe:

Vehicle

Der Konstruktor des TypeScript-Objekts

Wie bereits erwähnt, besteht jede TypeScript-Klasse aus einem Konstruktor, der ein vom Programmierer geschriebener benutzerdefinierter Konstruktor oder ein Standardkonstruktor sein kann. Es ist eine spezielle Art von TypeScript-Funktion.

Daher können wir einen Verweis auf die Konstruktor-Funktion eines Objekts erhalten.

Syntax:

Object.constructor

Lassen Sie uns eine Referenz auf den Konstruktor des miniCar-Objekts erhalten, wie im Folgenden gezeigt.

let miniCarConstructorRef: any = miniCar.constructor;

Als nächstes werden wir den Variablenwert miniCarConstructorRef in der Konsole protokollieren.

[Function: Vehicle]

Wie erwartet verweist es auf den Konstruktor des miniCar-Objekts.

Mit TypeScript können Sie den Konstruktornamen des Objekts mithilfe der Eigenschaft name abrufen.

Syntax:

Object.constructor.name

Lassen Sie uns die obige Syntax verwenden, um den Klassennamen des miniCar-Objekts zu erhalten.

let classNameOfTheObject = miniCarConstructorRef.name;

Schließlich werden wir den Variablenwert classNameOfTheObject in der Konsole protokollieren.

console.log(classNameOfTheObject);

Ausgabe:

Vehicle

Dies ist die empfohlene Methode, um die Klasse zu überprüfen, zu der ein Objekt gehört.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

Verwandter Artikel - TypeScript Class