extends (interfaces)

Étendre une interface avec de nouveaux champs, à partir d’une interface existante.

Sur cette page

Exemple

#
TypeScript
interface Person {
  name: string
  email: string
}

interface Student extends Person {
  level: number
}

interface Mentor extends Person {
  specialization: string
}

const student: Student = { name: 'Emma', email: 'emma@example.com', level: 3 }
const mentor: Mentor = { name: 'Hugo', email: 'hugo@example.com', specialization: 'React' }

console.log(`${student.name} apprend avec ${mentor.name} (${mentor.specialization})`)
Résultat
Emma apprend avec Hugo (React)

Définition et utilisation

#

Le mot-clé extends permet de construire une interface à partir d’une autre. La nouvelle interface hérite de tous les champs de l’interface de base et ajoute les siens. Vous pouvez étendre plusieurs interfaces à la fois, en les séparant par des virgules.

Cela évite de répéter les champs communs à plusieurs types. Par exemple, Student et Mentor peuvent tous les deux étendre un Person commun avec un nom et une adresse e-mail.

Une interface qui étend une autre peut restreindre le type d’un champ de base (par exemple de string vers une union de littéraux), mais elle ne peut pas le changer en un type incompatible.

Syntaxe

#
Syntaxe
interface Derived extends Base, Second {
  newField: type
}

Bonnes pratiques

#
  • Extrayez les champs communs vers une interface de base, mais ne construisez pas de hiérarchies profondes. Deux ou trois niveaux suffisent.
  • Avec les alias type, le même effet s’obtient par intersection : type Student = Person & { level: number }.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.