Créer une fonction d'identité générique
Fait partie de la section Introduction à TypeScript du Journey JavaScript de Coddy. Leçon 58 sur 73.
Voici la syntaxe d’une fonction générique utilisant l’exemple classique de identity :
function identity(arg: T): T {
return arg;
}Le <T> après le nom de la fonction déclare un paramètre de type appelé T. Ce T agit comme un espace réservé pouvant représenter n’importe quel type. Lorsque vous utilisez cette fonction, TypeScript remplace T par le type réel avec lequel vous travaillez.
La beauté de cette approche est qu’elle préserve les informations de type.
Si vous appelez identity("hello"), TypeScript sait que le type de retour est string. Si vous appelez identity(42), il sait que le type de retour est number.
Vous bénéficiez de toute la flexibilité liée à l’utilisation de plusieurs types, tout en conservant une sécurité de typage complète.
Par convention, T représente « Type », mais tu peux utiliser le nom que tu veux pour ton paramètre de type. L’important est qu’il crée une relation entre les types d’entrée et de sortie de ta fonction.
Défi
FacileCrée une fonction générique nommée wrapInObject qui accepte un argument de n’importe quel type et renvoie un objet contenant cette valeur.
La fonction doit :
- Utiliser un paramètre de type générique
T - Accepter un paramètre nommé
itemde typeT - Renvoyer un objet avec une seule propriété
valuede typeT - Posséder une annotation explicite du type de retour
Crée les variables suivantes pour tester ta fonction :
wrappedString- appellewrapInObjectavec la chaîne"Hello TypeScript"wrappedNumber- appellewrapInObjectavec le nombre42wrappedBoolean- appellewrapInObjectavec le booléentrue
Affiche les résultats suivants :
- Affiche
wrappedString.value - Affiche
wrappedNumber.value - Affiche
wrappedBoolean.value - Affiche le résultat de l’appel de
wrapInObjectavec la chaîne"Generic", en accédant à la propriétévalue - Affiche le résultat de l’appel de
wrapInObjectavec le nombre100, en accédant à la propriétévalue
Essayez vous-même
// TODO: Écrivez votre code ici
// Créez la fonction générique wrapInObject
// TODO: Créez les variables de test
// wrappedString, wrappedNumber, wrappedBoolean
// Affichez les sorties
console.log(wrappedString.value);
console.log(wrappedNumber.value);
console.log(wrappedBoolean.value);
console.log(wrapInObject("Generic").value);
console.log(wrapInObject(100).value);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 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ériquesEntraînez-vous par vous-même : Compilateur JavaScript en ligne