Tous les articles

Type, interface et classe en TypeScript et savoir quand les utiliser

Type, interface et classe en TypeScript et savoir quand les utiliser

1.Type

Le mot-clé type permet de créer une alias (un raccourci) pour n’importe quelle structure :

Ce qu’un type peut représenter, un objet, une union, une fonction, un tuple, un type primitif personnalisé


Exemple :

type User = {

id: number;

name: string;

};

type Status = "active" | "inactive";

type Point = [number, number];

type Callback = (value: number) => void;


Avantages des type :

  1. Plus flexible

Exemple: type Result<T> = T | Error;


Limitations :

  1. Ne supporte pas l’héritage classique comme interface extends (même si on peut faire &)


Quand utiliser type ?

Utilise type lorsque :

  1. vous avez besoin de définir un : union, intersection, tuple, fonction


Exemple :

type ApiResponse<T> = T | null;

type Status = "pending" | "approved" | "rejected";


Idéal pour la logique, les modèles de données abstraits, les types avancés.


2. L'interface

Une interface sert exclusivement à décrire la forme d’un objet.

Exemple:

interface User {

id: number;

name: string;

}


Avantages des interface :

  1. Supporte l’héritage multiple

interface A { a: string; }

interface B { b: number; }

interface C extends A, B {}


  1. Peut être déclarée plusieurs fois, Recommandée pour des objets structurés

interface User {

age: number;

}


Limitations :

Ne supporte pas les types complexes comme les unions

Exemple :

interface Status = "active" | "inactive"


Quand utiliser interface ?

Utilise interface lorsque :

  1. vous décrivez un (modèle, DTO, entité, paramètres…)


Exemple :

interface User {

id: number;

name: string;

}

interface Admin extends User {

role: string;

}


Recommandée pour les objets structurés, la modélisation, l’héritage propre.


3. La class

Une classe définit :

  1. des propriétés


Exemple :

class User {

constructor( public id: number, public name: string) {}

display() {

console.log(this.name);

}

}


Avantages des classes:

  1. Logique réutilisable (méthodes, constructeurs)


Limitations :

  1. Plus lourde qu’un simple type ou interface


Quand utiliser class ?

Utilise class lorsque :

  1. tu dois gérer une (new User())


Exemple :

class User {

constructor(private name: string) {}

getName() {

return this.name;

}

}


Pour le code orienté-objet, la logique métier, les modèles actifs.


Résume :