Types et Interfaces TypeScript : quand les utiliser

🏷️ Front-end 📅 12/04/2026 06:30:00 👤 Mezgani Said
Typescript Types Interfaces Contrats Oop
Types et Interfaces TypeScript : quand les utiliser

Comprendre la différence entre types et interfaces en TypeScript et savoir quand les utiliser.

Types vs Interfaces : les différences

Les types et les interfaces sont deux façons de décrire la structure d'objets en TypeScript. Elles se ressemblent beaucoup mais ont des différences importantes.

À retenir : Les interfaces sont extensibles et fusion-nables. Les types sont plus flexibles pour les unions et intersections.

Qu'est-ce qu'un type ?

type User = { id: number; name: string; email: string; }; type Admin = User & { role: 'admin'; permissions: string[]; };

Qu'est-ce qu'une interface ?

interface User { id: number; name: string; email: string; } interface Admin extends User { role: 'admin'; permissions: string[]; }

Structural typing

TypeScript utilise le structural typing : deux types sont compatibles s'ils ont la même structure.

interface Duck { quack(): void; } class Dog { quack() { console.info('Woof!'); } } const duck: Duck = new Dog(); // OK!

Union et Intersection types

// Union type (OR) type Status = 'pending' | 'completed' | 'failed'; // Intersection type (AND) type Named = { name: string }; type Aged = { age: number }; type Person = Named & Aged;

Quand utiliser quoi

Aspect Type Interface
Union ✓ Oui ✗ Non
Intersection ✓ Oui ✓ Oui (extends)
Primitives ✓ Oui ✗ Non
OOP

Bonnes pratiques

  • Utilisez interface pour OOP et contrats
  • Utilisez type pour les unions et primitives
  • Préférez interface pour la documentation