Interfaces vs Alias de type
Fait partie de la section Introduction à TypeScript du Journey JavaScript de Coddy. Leçon 40 sur 73.
Maintenant que vous avez découvert à la fois les alias de type et les interfaces pour définir la forme des objets, il est important de comprendre quand utiliser chaque approche. Bien qu'ils servent des objectifs similaires, il existe des différences clés qui peuvent influencer votre choix.
Similitudes : Les interfaces et les alias de type peuvent tous deux définir la structure d'objets avec le même niveau de sécurité de type. Vous pouvez utiliser l'une ou l'autre approche pour spécifier des propriétés obligatoires, des propriétés optionnelles et des propriétés readonly. Les deux prennent également en charge l'extension ou la combinaison avec d'autres types.
Différence clé - Fusion des déclarations : La différence la plus significative est que les interfaces prennent en charge la fusion des déclarations, contrairement aux alias de type. Cela signifie que vous pouvez déclarer la même interface plusieurs fois, et que TypeScript fusionnera automatiquement toutes les déclarations en une seule interface :
interface User {
name: string;
}
interface User {
age: number;
}
// TypeScript les fusionne en :
// interface User {
// name: string;
// age: number;
// }Si vous essayez la même approche avec les alias de type, TypeScript lèvera une erreur concernant des identifiants en double. Cette capacité de fusion rend les interfaces particulièrement utiles lorsque vous travaillez avec des bibliothèques ou lorsque vous avez besoin d'étendre des définitions de type existantes à travers différentes parties de votre base de code.
Quand choisir : Utilisez les interfaces pour définir des formes d'objets qui pourraient avoir besoin d'être étendues ou fusionnées plus tard. Utilisez les alias de type lorsque vous avez besoin d'opérations de type plus complexes comme les unions, les intersections, ou lorsque vous travaillez avec des types primitifs.
Essayez vous-même
Cette leçon ne comprend pas de défi de code.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Introduction à TypeScript
1Premiers pas avec TS
Qu'est-ce que TypeScript ?Pourquoi utiliser TypeScript ?Votre premier code TypeScriptProcessus de compilation et erreursRécapitulatif : Introduction à TS4Travailler avec les fonctions
Typage des paramètres et valeurs de retourTypage des fonctions fléchéesLe type de retour 'void'Paramètres optionnels avec '?'Valeurs par défaut des paramètresTypage des paramètres RestDéfinir des types de fonctionsRécapitulatif : Créer des fonctions typées2Types fondamentaux
Types de base : str, num, booleanLe type 'any' : la porte de sortieLe type 'unknown'Travailler avec 'null' et 'undef'L'inférence de type en actionAnnotations de type explicitesRécapitulatif : Pratique des types fondamentaux5Types : Alias, Unions & Intersections
Alias de types pour les primitifsTypes d'union ('|')Travailler avec les types d'unionTypes littérauxTypes d'intersection ('&')Combiner des alias de typesRécapitulatif : Combinaisons de types avancées3Structure de données : Tableaux et Tuples
Tableaux typésModificateur 'readonly' pour les tableauxQu'est-ce qu'un tuple ?Déclaration et accès aux tuplesDéstructuration de tuplesTuples readonlyTableaux typés multidimensionnelsSpread operator avec les tableauxRécapitulatif : Tableaux et tuples6Typage des objets et interfaces
Annotations de type d'objet en ligneAlias de type pour les objetsIntroduction aux interfacesInterfaces vs Alias de typePropriétés optionnelles et ReadonlyÉtendre les interfaces et les typesAjout de méthodes aux interfacesRécapitulatif : Définir la structure des objetsEntraînez-vous par vous-même : Compilateur JavaScript en ligne