Variables de type générique en TypeScript
Pour mieux comprendre le concept des génériques, créons notre première fonction - une fonction identité. Une telle fonction retourne exactement ce qui lui a été passé - avec le même type.
Commençons par écrire les variantes de notre fonction séparément.
Écrivons une fonction qui prend un nombre en paramètre et retourne un nombre :
function func(data: number): number {
return data;
}
Maintenant, écrivons une fonction qui prend une chaîne de caractères en paramètre et retourne une chaîne :
function func(data: string): string {
return data;
}
Supposons maintenant que nous voulons que tout cela soit fait par une seule fonction. C'est-à-dire que nous voulons effectuer une généralisation.
Pour cela, nous utilisons une variable de type,
qui conserve le type de données. Une telle variable est déclarée
dans des chevrons avant les parenthèses
des paramètres de la fonction. Déclarons
une telle variable, en lui donnant le nom T
(n'importe quel nom est possible) :
function func <T>(ici les paramètres) {
return data;
}
Après cela, nous aurons une variable T
,
qui pourra être utilisée pour
y stocker le type du paramètre, puis
le spécifier comme type de retour.
Spécifions le type de notre paramètre en utilisant notre variable :
function func <T>(data: T) {
return data;
}
Il en résultera que le paramètre peut être passé
avec n'importe quel type, et ce type sera sauvegardé dans notre
variable T
.
Maintenant, utilisons la valeur de la variable T
comme indication du résultat de la fonction :
function func <T>(data: T): T {
return data;
}
Maintenant, le type de résultat de la fonction sera déduit du type du paramètre. Vérifions.
Appelons la fonction avec un nombre :
console.log( func(3) ); // affichera 3
Appelons la fonction avec une chaîne :
console.log( func('x') ); // affichera 'x'
Créez une fonction qui prend en paramètre soit deux nombres, soit deux chaînes de caractères. La fonction doit retourner la somme des paramètres.