Interfaces génériques
Fait partie de la section Introduction à TypeScript du Journey JavaScript de Coddy — leçon 61 sur 73.
Tout comme vous pouvez créer des fonctions génériques, vous pouvez également créer des interfaces génériques. Cela vous permet de définir la forme d'un objet tout en gardant certains types de propriétés flexibles et réutilisables.
Voici comment créer une interface générique en utilisant la même syntaxe de paramètre de type :
interface Container {
value: T;
isEmpty: boolean;
}Le <T> après le nom de l'interface crée un paramètre de type qui peut être utilisé dans toute la définition de l'interface. Dans cet exemple, la propriété value aura le type que vous spécifierez lors de l'utilisation de l'interface, tandis que isEmpty reste un type boolean fixe.
Lorsque vous utilisez une interface générique, vous spécifiez le type concret entre chevrons :
const stringContainer: Container = {
value: "hello",
isEmpty: false
};
const numberContainer: Container = {
value: 42,
isEmpty: false
};Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Défi
FacileCréez une interface générique nommée Result qui peut contenir des données de n'importe quel type ainsi que des informations de succès.
L'interface doit avoir deux propriétés :
successde typebooleandatade typeT(le paramètre de type générique)
Créez les objets suivants en utilisant votre interface générique :
stringResultde typeResult<string>avecsuccess: trueetdata: "Operation completed"numberResultde typeResult<number>avecsuccess: trueetdata: 42booleanResultde typeResult<boolean>avecsuccess: falseetdata: falsearrayResultde typeResult<string[]>avecsuccess: trueetdata: ["item1", "item2", "item3"]
Créez une fonction générique nommée processResult qui :
- Utilise un paramètre de type générique
T - Prend un paramètre
resultde typeResult<T> - Retourne un message sous forme de chaîne de caractères
- Si
successesttrue, retourne"Success: [data]" - Si
successestfalse, retourne"Failed: [data]"
Affichez les sorties suivantes :
- Affichez le résultat de l'appel de
processResultavecstringResult - Affichez le résultat de l'appel de
processResultavecnumberResult - Affichez le résultat de l'appel de
processResultavecbooleanResult - Affichez le résultat de l'appel de
processResultavecarrayResult - Affichez
stringResult.data
Aide-mémoire
Les interfaces génériques vous permettent de définir la forme d'un objet tout en gardant certains types de propriétés flexibles et réutilisables.
Créez une interface générique en utilisant la syntaxe des paramètres de type :
interface Container<T> {
value: T;
isEmpty: boolean;
}Le <T> après le nom de l'interface crée un paramètre de type qui peut être utilisé dans toute la définition de l'interface.
Utilisez une interface générique en spécifiant le type concret entre chevrons :
const stringContainer: Container<string> = {
value: "hello",
isEmpty: false
};
const numberContainer: Container<number> = {
value: 42,
isEmpty: false
};Essayez vous-même
// À FAIRE : Écrivez votre code ici
// Créer l'interface générique Result
// Créer les objets en utilisant l'interface Result
// Créer la fonction générique processResult
// Afficher les sorties requisesCette 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 objets9Les génériques : un premier aperçu
Le problème résolu par les génériquesCréer une fonction d'identité génériqueUtiliser une fonction génériqueTableaux génériquesInterfaces génériquesRécapitulatif : Pratique des fonctions génériques