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.
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");