Obtenir le nom de la classe dans TypeScript

Migel Hewage Nimesha 30 janvier 2023
  1. Classes et objets TypeScript
  2. Obtenir le type de l’objet TypeScript au moment de l’exécution
  3. Constructeur d’objet TypeScript
Obtenir le nom de la classe dans TypeScript

L’ancien JavaScript est plus axé sur la programmation fonctionnelle. Avec l’évolution de TypeScript, qui est le sur-ensemble de JavaScript, il a commencé à prendre en charge les fonctionnalités de programmation orientée objet.

La terminologie de base derrière la programmation orientée objet est qu’un programme se compose d’entités du monde réel qui interagissent.

Classes et objets TypeScript

TypeScript prend en charge la programmation orientée objet avec le concept de class. Une classe est un plan d’une entité du monde réel qui est utilisée pour créer des instances de classe.

Les classes TypeScript ont été introduites à partir de l’ES6. Une classe se compose de champs, de méthodes et de constructeurs.

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

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

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

Les champs sont définis pour stocker le nom et la couleur d’un objet Animal. Un constructeur TypeScript est utilisé pour initialiser les propriétés de l’objet.

C’est une fonction spéciale qui peut être paramétrée, comme dans l’exemple ci-dessus.

Avec la classe Animal en place, il est possible de créer des objets à partir de cela. TypeScript utilise le mot-clé new pour créer de nouveaux objets à partir d’une classe donnée.

Comme TypeScript est un langage fortement typé, le type des nouvelles instances Animal sera dans le type Animal.

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

Comme vous pouvez le voir, le constructeur de la classe Animal a été appelé lors de la création de l’instance Animal. Le constructeur de la classe Animal accepte un paramètre de chaîne, et nous avons dû le passer lors de la création de l’objet.

Obtenir le type de l’objet TypeScript au moment de l’exécution

Dans certains scénarios, vous devez connaître le type de l’objet TypeScript au moment de l’exécution. Supposons que nous ayons une classe appelée Vehicle.

class Vehicle {
    vehicleNo: string;
    vehicleBrand: string

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

Créons un nouvel objet Vehicle, miniCar.

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

La miniCar est un objet Vehicle, et son type est un Vehicle. Nous pouvons vérifier le nom d’une classe spécifique en utilisant la propriété name de cette classe.

Syntaxe:

<class_name>.name

Vérifions le nom de la classe Vehicle.

console.log(Vehicle.name);

Production:

Vehicle

Constructeur d’objet TypeScript

Comme mentionné, chaque classe TypeScript consiste en un constructeur qui peut être un constructeur personnalisé écrit par le programmeur ou un constructeur par défaut. Il s’agit d’un type spécial de fonction TypeScript.

Ainsi, on peut obtenir une référence à la fonction constructor d’un objet.

Syntaxe:

Object.constructor

Obtenons une référence au constructeur de l’objet miniCar, comme illustré ci-dessous.

let miniCarConstructorRef: any = miniCar.constructor;

Ensuite, nous enregistrerons la valeur de la variable miniCarConstructorRef dans la console.

[Function: Vehicle]

Comme prévu, il référence le constructeur de l’objet miniCar.

TypeScript vous permet d’obtenir le nom du constructeur de l’objet à l’aide de la propriété name.

Syntaxe:

Object.constructor.name

Utilisons la syntaxe ci-dessus pour obtenir le nom de classe de l’objet miniCar.

let classNameOfTheObject = miniCarConstructorRef.name;

Enfin, nous enregistrerons la valeur de la variable classNameOfTheObject dans la console.

console.log(classNameOfTheObject);

Production:

Vehicle

Il s’agit de la méthodologie recommandée pour vérifier la classe à laquelle appartient un objet.

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.

Article connexe - TypeScript Class