Mot-clé implements dans TypeScript

Migel Hewage Nimesha 15 février 2024
  1. Vérification de type TypeScript
  2. Interfaces TypeScript
  3. La clause implements en TypeScript
Mot-clé implements dans TypeScript

Cet article explique le mot-clé implémente de TypeScript.

Vérification de type TypeScript

TypeScript est un sur-ensemble de JavaScript qui inclut la vérification de type au moment de la compilation. La vérification de type au moment de la compilation se concentre principalement sur la question de savoir si une variable ou une valeur d’argument a la forme qu’elle est censée avoir.

Cette technique s’appelle le typage de canard dans TypeScript. À la suite du typage canard, le compilateur TypeScript vérifie si les deux objets sont identiques.

Il assure la sécurité du type dans un programme TypeScript.

La vérification de type vérifie si deux objets donnés contiennent les mêmes propriétés et méthodes. Sinon, le compilateur TypeScript générera une erreur.

Supposons que nous ayons trois classes TypeScript, comme illustré ci-dessous.

class Person {
    gender: string;
}

class Employee {
    gender: string;
    empId: string;
}

class Manager {
    gender: string;
    empId: string;
}

Créons de nouveaux objets Person et Employee.

let person1: Person = new Person();
let employee1: Employee = new Employee();

Ce code sera compilé avec succès car il ne viole pas les règles de vérification de type.

Essayons d’affecter l’objet employee1 à une variable de type Person.

let person2: Person = employee1;

La compilation s’est déroulée avec succès car l’objet employee1 a la forme de l’objet Person. Comme les objets Person ne doivent avoir qu’une seule propriété appelée gender, elle est conforme à l’objet employee1.

La propriété supplémentaire empId est tout à fait correcte.

Essayons d’affecter l’objet person1 à la variable de type Employee comme indiqué ci-dessous.

let employee2: Employee = person1;

Les règles de typage du canard TypeScript ne le permettent pas. Par conséquent, le compilateur TypeScript génère une erreur.

Erreur du compilateur TypeScript

Habituellement, les interfaces TypeScript jouent le rôle de définir des types et des contrats dans le code TypeScript.

Interfaces TypeScript

Les interfaces TypeScript fournissent la forme de vos classes. Chaque fois qu’une classe TypeScript dérive d’une interface, elle doit implémenter la structure définie par l’interface.

C’est comme un contrat du monde réel; tant qu’une classe accepte l’interface, elle doit adhérer à la structure de l’interface. Les interfaces n’implémentent aucune logique métier.

Il déclare simplement les propriétés et les méthodes comme indiqué dans ce qui suit.

interface IVehicle {
    vehicleNumber: string;
    vehicleBrand: string;
    vehicleCapacity: number;
    getTheCurrentGear: () => number;
    getFuelLevel(): string;
}

Les interfaces TypeScript peuvent être utilisées comme type, type de fonction, type de tableau, etc. Elles peuvent être utilisées comme contrat pour une classe, comme indiqué dans la section suivante.

La clause implements en TypeScript

Le mot clé TypeScript implements est utilisé pour implémenter une interface dans une classe. L’interface IVehicle ne contient aucun détail au niveau de l’implémentation.

Ainsi, l’interface IVehicle peut être implémentée par une nouvelle classe VipVehicle.

class VipVehicle implements IVehicle {

}

La classe VipVehicle vient à un contrat avec l’interface IVehicle, comme indiqué dans l’exemple ci-dessus. Si vous compilez ce code TypeScript, il générera une erreur, comme illustré ci-dessous.

Erreur du compilateur TypeScript lors de l’utilisation d’outils

Le compilateur TypeScript se plaint que trois propriétés et deux méthodes n’ont pas été implémentées dans la classe VipVehicle. Il est donc obligatoire de se conformer à la structure de l’interface IVehicle.

Nous devrions ajouter trois propriétés et implémenter les deux méthodes en conséquence.

class VipVehicle implements IVehicle {
    vehicleNumber: string;
    vehicleBrand: string;
    vehicleCapacity: number;

    getTheCurrentGear():number {
        return 3; // dummy numebr returning here for demo purposes
    }

    getFuelLevel():string {
        return 'full'; // dummy string returning here for demo purposes
    }

}

Si nous compilons à nouveau le code, il devrait être compilé avec succès.

Compilateur TypeScript réussi lors de l’utilisation d’outils

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.