Aller au contenu

Extension des types

Il est possible d’étendre une interface (en copiant les membres d’un autre type) :

interface X {
a: string;
}
interface Y extends X {
b: string;
}

Il est également possible d’étendre plusieurs types :

interface A {
a: string;
}
interface B {
b: string;
}
interface Y extends A, B {
y: string;
}

Le mot-clé extends fonctionne uniquement avec les interfaces et les classes ; pour les types, utilisez une intersection :

type A = {
a: number;
};
type B = {
b: number;
};
type C = A & B;

Il est possible d’étendre un type à l’aide d’une interface, mais pas l’inverse :

type A = {
a: string;
};
interface B extends A {
b: string;
}