Skip to content

Classes, interfaces et objets

Le système de types dans TypeScript est structurel. En résumé si l'objet a les mêmes propriétés qu'un chat on peut dire que c'est un chat, sans que ça soit nécessaire de l'instancier à partir de cette classe.

let nouveauEmploye: Employe = {
    nom: "Carole Denvers";
    poste: 9001;
}

Interfaces

  • Définir un type

  • Définir les propriétés (signatures - nom et type)

  • Définir la signature des méthodes

  • Ne peuvent être instanciées

  • Héritage permis (une interface peut hériter d'une autre)

Très utilisées en TypeScript pour décrire les données qui sont manipulées

interface Employe {
    nom: string;
    poste : number;
}

interface Superviseur extends Employe {
    creerRdv: (sujet: string) => void;
}

let nouveauEmploye: Employe = {
    nom: "Carole Denvers";
    poste: 9001;
}

Classes

  • Définir un type
  • Définir et implémenter des propriétés
  • Définir et implémenter des méthodes
  • Peuvent être instanciées
  • Héritage permis
class Employe {

    static nbEmployes: number;
    private _nom: string;
    private _poste : number;

    constructor(nom: string) {
        this._nom = nom;
    }

    get nom(): string {
        return this._nom,
    }

    set poste(nouvPoste: number) {
        this._poste = nouvPoste;
    }

    creerRdv(sujet: string): void {
        ...
    }

}

let webDev: Employe = new Employe("Ginette");