Fonctions génériques et contraintes (extends, paramètres par défaut)
Créez des fonctions génériques, ajoutez des contraintes avec extends et utilisez des paramètres de type par défaut pour des API ergonomiques.
Fonctions génériques et contraintes (extends, paramètres par défaut) est une leçon TypeScript Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 3. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage TypeScript Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours TypeScript Academy comprend 3 leçons au total.
Introduction
Objectif : rendre les fonctions réutilisables et sûres du point de vue des types grâce aux génériques. Vous allez définir des paramètres de type, ajouter des contraintes extends et définir des paramètres de type par défaut pour améliorer la DX.
Générique d'identité
Définissez un paramètre de type <T>. Le compilateur infère T à partir des arguments, si bien que les appelants l'annotent rarement.
function identity<T>(x: T): T {
return x;
}
const a = identity(42); // T inferred as number
const b = identity("ts"); // T inferred as string
console.log(a, b);Contrainte avec extends
Utilisez extends pour exiger une structure (par exemple, un id). Grâce au typage structurel, T peut inclure davantage de champs.
function getId<T extends { id: number }>(item: T): number {
return item.id;
}
getId({ id: 1, name: "Ada" }); // OK (has id)
// getId({ name: "Lin" }); // Error: missing idContrainte avec keyof
Contraignez K avec keyof T pour n'autoriser que les noms de propriétés de T. Le type de retour est le type de la propriété : T[K].
function pluck<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}
const user = { id: 7, name: "Neo" };
const v1 = pluck(user, "name"); // string
const v2 = pluck(user, "id"); // number
console.log(v1, v2);Paramètres de type par défaut
Les paramètres de type par défaut réduisent le code répétitif. Les appelants peuvent omettre <T> dans les cas courants, tout en le remplaçant si nécessaire.
interface Box<T = string> {
value: T;
}
const aBox: Box = { value: "hi" }; // T defaults to string
const nBox: Box<number> = { value: 123 }; // explicit override
console.log(aBox.value, nBox.value);Conseils
Conseils :
- Laissez l'inférence faire son travail ; évitez les annotations T redondantes.
- Ajoutez extends uniquement lorsque l'implémentation a besoin de membres de T.
- Fournissez des valeurs par défaut pour les cas courants et ergonomiques.
Vérification de la contrainte
Vérification rapide : que garantit T extends { id: number } ?
Récapitulatif
Récapitulatif : définissez des fonctions génériques, ajoutez des contraintes avec extends et définissez des paramètres de type par défaut pour conserver des API flexibles et faciles à utiliser.
Questions Fréquemment Posées
La leçon « Fonctions génériques et contraintes (extends, paramètres par défaut) » est-elle gratuite ?
Oui — le texte complet de « Fonctions génériques et contraintes (extends, paramètres par défaut) » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours TypeScript Academy, passe à CoddyKit PRO. Le cours TypeScript Academy comprend 3 leçons au total.
Qu'est-ce que j'apprendrai dans « Fonctions génériques et contraintes (extends, paramètres par défaut) » ?
Créez des fonctions génériques, ajoutez des contraintes avec extends et utilisez des paramètres de type par défaut pour des API ergonomiques. Tu pratiques TypeScript Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer TypeScript Academy ?
Aucune expérience préalable n'est requise. TypeScript Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 3.
Combien de temps prend la leçon « Fonctions génériques et contraintes (extends, paramètres par défaut) » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon TypeScript Academy ?
Oui. Chaque leçon TypeScript Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Fonctions génériques et contraintes (extends, paramètres par défaut)
- Partial, Readonly, Record, Pick, Omit
- Types keyof et d’accès indexé (introduction)