Skip to content

Créer des types

En TypeScript, vous pouvez créer vos propres types de deux manières principales : en utilisant des alias de type (type aliases) ou des interfaces. Bien que ces deux méthodes semblent similaires et dans de nombreux cas peuvent être utilisées de manière interchangeable, il y a des différences clés dans la manière dont elles fonctionnent et dans leur usage.

Création de Propres Types avec Alias de Type

Un alias de type est une façon de donner un nouveau nom à un type existant. Il peut être simple ou plus complexe, et peut inclure des types primitifs, des unions, des intersections, des tuples, et plus encore.

typescript
type Point = {
    x: number;
    y: number;
};

type ID = string | number;

type Point3D = Point & { z: number };
type Point = {
    x: number;
    y: number;
};

type ID = string | number;

type Point3D = Point & { z: number };

Création de Propres Types avec Interfaces

Une interface en TypeScript est utilisée pour définir la forme d'un objet. Elle peut déclarer des propriétés, des méthodes, et peut être étendue ou implémentée par des classes.

typescript
interface Point {
    x: number;
    y: number;
}

interface Point3D extends Point {
    z: number;
}
interface Point {
    x: number;
    y: number;
}

interface Point3D extends Point {
    z: number;
}

Différences Clés avec les interfaces

  1. Extensions :

    • Les interfaces peuvent être étendues et fusionnées. Une interface peut étendre une ou plusieurs autres interfaces, et elle peut être déclarée plusieurs fois pour fusionner ses membres.
    • Les alias de type ne peuvent pas être étendus ou fusionnés.
  2. Implémentation dans les Classes :

    • Les classes peuvent implémenter des interfaces, ce qui force la classe à adhérer à la structure définie par l'interface.
    • Les alias de type ne peuvent pas être implémentés par des classes (ils ne décrivent que la forme d'un objet).
  3. Usage :

    • Utilisez les interfaces lorsque vous avez besoin de définir la forme d'objets ou lorsque vous souhaitez que les classes implémentent une structure spécifique.
    • Utilisez les alias de type pour donner un nom à un type plus complexe, en particulier pour les types qui ne peuvent pas être exprimés avec une interface, comme les unions, les intersections, les tuples, etc.