亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Table des matières
2. Utilisation de génériques dans les fonctions et les interfaces
Exemple: un emballage générique de réponse API
3. Contrain les génériques avec extends
4. Paramètres de type multiple et types par défaut
5. Composants réutilisables dans la pratique
Maison interface Web js tutoriel Déverrouiller la réutilisabilité avec les génériques dactylographiés

Déverrouiller la réutilisabilité avec les génériques dactylographiés

Sep 16, 2025 am 03:14 AM
Génériques

Les génériques de typeScript permettent un code réutilisable et sécurisé en permettant aux fonctions, aux interfaces et aux composants de fonctionner avec plusieurs types tout en préservant les informations de type. 1. Les génériques utilisent des variables de type comme T pour représenter les types d'espaces d'espaces d'espaces réservés, comme le montre la fonction d'identité, la préservation de la sécurité de type contrairement à tout. 2. Ils sont idéaux pour des structures comme APIRSPONSE , permettant une gestion cohérente des formes de données variables entre les API ou les gestionnaires d'état. 3. En utilisant les étendues, les génériques peuvent être limités pour garantir les propriétés requises, telles que T étend {id: numéro} pour les objets avec un champ d'ID. 4. Les paramètres de type multiple (par exemple, K, V, R) prennent en charge les transformations complexes comme MapObject, et les types par défaut (par exemple, t = inconnus) améliorent l'utilisabilité sans sacrifier la flexibilité. 5. Les génériques sont largement utilisés dans les fonctions utilitaires, les crochets réagiss comme useFetch () et la gestion des états pour éviter la duplication et assurer la sécurité du temps de compilation, ce qui les rend essentiels pour un code évolutif et maintenable lorsque la logique se répète entre différents types.

Déverrouiller la réutilisabilité avec les génériques dactylographiés

Les génériques dactylographiques sont l'une des fonctionnalités les plus puissantes pour l'écriture de code réutilisable et sécurisé. Ils vous permettent de créer des composants, des fonctions ou des classes qui fonctionnent sur une variété de types plut?t qu'un seul - sans sacrifier les informations de type. Cela débloque la flexibilité tout en maintenant un dactylographie solide, ce qui est essentiel dans les applications à grande échelle.

Déverrouiller la réutilisabilité avec les génériques dactylographiés

Décomposons comment les génériques vous aident à créer un code plus réutilisable et quand les utiliser.


1. Que sont les génériques? (Et pourquoi vous en avez besoin)

à la base, les génériques vous permettent d'écrire des fonctions ou des structures de données qui peuvent gérer différents types tout en préservant la sécurité des types.

Déverrouiller la réutilisabilité avec les génériques dactylographiés

Par exemple, imaginez une fonction d'identité simple:

 identité de fonction (arg: any): tout {
  retourner arg;
}

Cela fonctionne, mais il jette les informations de type. Avec des génériques, vous le préserve:

Déverrouiller la réutilisabilité avec les génériques dactylographiés
 Identité de fonction <T> (arg: t): t {
  retourner arg;
}

Ici, T est une variable de type - un espace réservé pour le type qui sera utilisé lorsque la fonction est appelée.

Vous pouvez l'appeler comme ceci:

 Conn num = identité (42); // Type: numéro
const str = identity ("hello"); // Type: cha?ne

TypeScript s'enfère automatiquement T , vous n'avez donc pas toujours à écrire identity<number>(42) .

Cela peut sembler trivial, mais cela devient critique lors de la construction de services publics comme des caches, des API ou des gestionnaires d'état où les types varient, mais le comportement reste cohérent.


2. Utilisation de génériques dans les fonctions et les interfaces

Les génériques brillent vraiment lors de l'abstraction de la logique sur plusieurs types.

Exemple: un emballage générique de réponse API

Supposons que vous gérez les réponses API avec une forme cohérente:

 interface apirsonse <t> {
  Données: T;
  Statut: numéro;
  Message ?: String;
}

Vous pouvez maintenant réutiliser cette interface sur différents points de terminaison:

 const userResponse: apiResponse <User> = {
  Données: {id: 1, nom: "Alice"},
  Statut: 200,
};

const PostResponse: apiResponse <post []> = {
  Données: [{id: 1, titre: "Hello"}],
  Statut: 200,
};

Vos composants ou services peuvent désormais gérer ApiResponse<T> sans conna?tre la forme exacte de T , tout en offrant une assurance automatique complète et une vérification de type.


3. Contrain les génériques avec extends

Parfois, vous voulez de la flexibilité, mais pas trop . Vous pouvez restreindre les types qu'un générique accepte en utilisant extends .

Par exemple, supposons que vous souhaitiez une fonction qui extrait une propriété d'un objet, mais seulement si elle a un champ id :

 Fonction Logid <T étend {id: numéro}> (item: t): void {
  console.log (item.id);
}

Maintenant, cela garantit que tout argument adopté doit avoir un id de number de type:

 logId ({id: 123, nom: "bob"}); // ? ok
LogID ({nom: "Charlie"}); // ? Erreur: ?ID? manquant

Ce schéma est commun dans les fonctions utilitaires, les gestionnaires de formulaires ou les sérialiseurs où vous avez besoin de garanties structurelles.


4. Paramètres de type multiple et types par défaut

Vous n'êtes pas limité à un type générique.

 fonction mapObject <k, v, r> (
  obj: enregistrement <k, v>,
  fn: (valeur: v) => r
): Enregistrer <k, r> {
  return object.fromentries (
    Object.entries (obj) .map (([clé, valeur]) => [key, fn (valeur)])
  ) comme enregistrement <k, r>;
}

Vous pouvez également fournir des types par défaut pour une meilleure ergonomie:

 Interface QueryResult <t = inconnu> {
  Données: T;
  Chargement: booléen;
}

Maintenant, QueryResult est par défaut unknown si aucun type n'est spécifié, mais reste flexible.


5. Composants réutilisables dans la pratique

Les génériques sont particulièrement utiles dans:

  • Fonctions utilitaires (par exemple, pick , omit , deepClone )
  • Gestion de l'état (par exemple, actions, réducteurs avec les types de charge utile)
  • React Composants (par exemple, formulaires, modaux qui acceptent les accessoires génériques)
  • Données Rending Hooks (par exemple, useFetch<T>() )

Exemple: un crochet de réaction générique

 fonction usefetch <T> (URL: String): {data: t | nul; Chargement: booléen} {
  const [data, setData] = useState <t | null> (null);
  const [chargement, setLoading] = useState (true);

  useEFFECT (() => {
    Fetch (URL)
      .Then (r => r.json ())
      .Then (data => setData (données comme t))
      .Finally (() => setLoading (false));
  }, [url]);

  return {data, chargement};
}

// utilisation
const {data} = usefetch <user []> ("/ api / utilisateurs");

Ici, le même crochet gère en toute sécurité tout type de réponse attendu.


Les génériques peuvent sembler abstraits au début, mais ils ne sont que la manière de TypeScript de vous permettre d'écrire du code à l'épreuve du futur . Une fois que vous commencerez à les utiliser, vous vous retrouverez à dupliquer moins, à refactoriser avec confiance et à attraper des bugs au moment de la compilation.

Fondamentalement: si vous répétez la même logique pour différents types, il est temps d'atteindre les génériques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Les fonctions génériques résolvent-elles le problème des types de paramètres variadiques dans Golang ? Les fonctions génériques résolvent-elles le problème des types de paramètres variadiques dans Golang ? Apr 16, 2024 pm 06:12 PM

Les fonctions génériques dans Go résolvent le problème des types variadiques : les fonctions génériques permettent de spécifier les paramètres de type au moment de l'exécution. Cela permet d'écrire des fonctions capables de gérer des arguments de différents types. Par exemple, la fonction Max est une fonction générique qui accepte deux paramètres comparables et renvoie la plus grande valeur. En utilisant des fonctions génériques, nous pouvons écrire du code plus flexible et général capable de gérer différents types de paramètres.

Scénarios d'application spécifiques des génériques dans Golang Scénarios d'application spécifiques des génériques dans Golang May 04, 2024 am 11:45 AM

Scénarios d'application des génériques dans Go : Opérations de collecte : Créez des opérations de collecte adaptées à tout type, comme le filtrage. Structures de données?: écrivez des structures de données à usage général telles que des files d'attente, des piles et des cartes pour stocker et manipuler divers types de données. Algorithmes?: écrivez des algorithmes à usage général tels que le tri, la recherche et la réduction qui peuvent gérer différents types de données.

Quel est l'impact des génériques Golang sur les signatures et les paramètres des fonctions?? Quel est l'impact des génériques Golang sur les signatures et les paramètres des fonctions?? Apr 17, 2024 am 08:39 AM

L'impact des génériques sur les signatures et les paramètres des fonctions Go comprend?: Paramètres de type?: les signatures de fonction peuvent contenir des paramètres de type, spécifiant les types que la fonction peut utiliser. Contraintes de type?: les paramètres de type peuvent avoir des contraintes qui spécifient les conditions qu'ils doivent satisfaire. Inférence de type de paramètre?: le compilateur peut déduire le type de paramètres de type non spécifiés. Spécification des types?: les types de paramètres peuvent être explicitement spécifiés pour appeler des fonctions génériques. Cela augmente la réutilisabilité et la flexibilité du code, vous permettant d'écrire des fonctions et des types pouvant être utilisés avec plusieurs types.

Comment les types d'énumération Java fonctionnent-ils avec les génériques?? Comment les types d'énumération Java fonctionnent-ils avec les génériques?? May 04, 2024 am 08:36 AM

La combinaison des types d'énumération et des génériques en Java?: lors de la déclaration d'une énumération avec des génériques, vous devez ajouter des crochets angulaires et T est le paramètre de type. Lors de la création d'une classe générique, vous devez également ajouter des crochets angulaires, T est un paramètre de type qui peut stocker n'importe quel type. Cette combinaison améliore la flexibilité du code, la sécurité du type et simplifie le code.

Quelles sont les limites supérieure et inférieure des fonctions génériques Java?? comment utiliser? Quelles sont les limites supérieure et inférieure des fonctions génériques Java?? comment utiliser? Apr 26, 2024 am 11:45 AM

Les fonctions génériques Java permettent de définir des limites supérieures et inférieures. Extends spécifie que le type de données accepté ou renvoyé par une fonction doit être un sous-type du type spécifié, par ex. La limite inférieure (super) spécifie que le type de données accepté ou renvoyé par une fonction doit être un supertype du type spécifié, par ex. L'utilisation de génériques améliore la réutilisabilité et la sécurité du code.

Quelles sont les limitations des fonctions génériques dans Golang ? Quelles sont les limitations des fonctions génériques dans Golang ? Apr 16, 2024 pm 05:12 PM

Limitations des fonctions génériques Go : seuls les paramètres de type sont pris en charge, les paramètres de valeur ne sont pas pris en charge. La récursion des fonctions n'est pas prise en charge. Les paramètres de type ne peuvent pas être spécifiés explicitement, ils sont déduits par le compilateur.

Comparaison des modèles C++ et des génériques?? Comparaison des modèles C++ et des génériques?? Jun 04, 2024 pm 04:24 PM

La différence entre les modèles et les génériques en C++?:?Modèles?: définis au moment de la compilation, clairement typés, haute efficacité et petite taille de code. Génériques?: typage à l'exécution, interface abstraite, offre flexibilité, faible efficacité.

Comment la méthode générique Java effectue-t-elle l'inférence de type?? Comment la méthode générique Java effectue-t-elle l'inférence de type?? May 01, 2024 pm 02:45 PM

Les méthodes génériques Java déduisent automatiquement les paramètres de type sans les déclarer explicitement. Les règles incluent : 1. Utiliser des déclarations de type explicites ; 2. Déduire un seul type ; 3. Déduire des types génériques ; 4. Déduire des types de valeurs de retour du constructeur ; Cela simplifie le code, facilitant l'écriture et l'utilisation de méthodes génériques.

See all articles