Maison > interface Web > js tutoriel > Un guide complet pour comprendre le type d'enregistrement TypeScript

Un guide complet pour comprendre le type d'enregistrement TypeScript

Joseph Gordon-Levitt
Libérer: 2025-02-08 11:03:10
original
184 Les gens l'ont consulté

A Comprehensive Guide to Understanding TypeScript Record Type

Ce guide explore le type Record de TypeScript, un outil puissant pour créer des objets avec des types de valeur cohérents. Nous couvrirons sa définition, sa syntaxe, ses comparaisons avec les tuples, ses applications pratiques comme la manipulation exhaustive des cas et la cartographie des énumérations, et des utilisations avancées avec des types d'utilité comme Partial, Pick, et Readonly.

Comprendre le Record type

Le type Record vous permet de définir les types d'objets où toutes les valeurs partagent le même type, tandis que les clés peuvent varier. Sa définition est:

Record<Keys, Type>
Copier après la connexion
Copier après la connexion
  • Keys: Une union de littéraux de chaînes ou un type dérivé d'une union, définissant les clés possibles.
  • Type: Le type de toutes les valeurs associées aux clés.

par exemple, Record<string, number> crée un objet où chaque clé est une chaîne et chaque valeur est un nombre.

Record vs Tuple

Les deux gèrent les collections de données, mais diffèrent considérablement:

  • Record : Propriétés nommées avec un type de valeur fixe. Idéal pour les mappages de valeurs clés.
  • Tuple : Liste des éléments ordonnés, chacun potentiellement avec un type différent. Utile pour les collections de taille fixe.

Exemple:

// Record: string keys, number values
type AgeMap = Record<string, number>;

// Tuple: string and number in specific order
type Person = [string, number];
Copier après la connexion

Basic Record Utilisation

La définition d'un Record implique de spécifier les types de clé et de valeur:

// Object with string keys and string values
type User = Record<string, string>;
Copier après la connexion

Applications pratiques

  1. Gestion exhaustive des cas: Assurez-vous que tous les cas d'énumération ou d'union sont manipulés:

    enum Status { Pending, Completed, Failed }
    const statusMessages: Record<Status, string> = {
      [Status.Pending]: "Request pending...",
      [Status.Completed]: "Request complete!",
      [Status.Failed]: "Request failed."
    };
    Copier après la connexion
  2. Vérification des types génériques: Créer des fonctions réutilisables qui génèrent des enregistrements:

    function createRecord<K extends string, T>(keys: K[], value: T): Record<K, T> {
      return keys.reduce((acc, key) => ({ ...acc, [key]: value }), {});
    }
    Copier après la connexion
  3. Enum to Data Mapping: Créer des tables de recherche à partir des enums:

    enum Color { Red, Green, Blue }
    const colorHex: Record<Color, string> = {
    };
    Copier après la connexion
  4. Tables de recherche: Carte efficacement les clés des valeurs:

    type CountryCode = "US" | "CA";
    interface CountryInfo { name: string; }
    const countries: Record<CountryCode, CountryInfo> = {
      US: { name: "United States" },
      CA: { name: "Canada" }
    };
    Copier après la connexion

itérer les types Record

Plusieurs méthodes permettent l'itération:

  • Object.entries(): itère sur les paires de valeurs clés.
  • for...in: itérate sur les clés.
  • Object.keys(): Renvoie un tableau de clés.
  • Object.values(): Renvoie un tableau de valeurs.

Utilisation avancée avec les types d'utilité

combinant Record avec d'autres types d'utilité améliore ses capacités:

  • Pick : sélectionne des propriétés spécifiques:

    type Product = { name: string; price: number; description: string };
    type ShortProduct = Pick<Product, "name" | "price">;
    Copier après la connexion
  • Readonly : Crée des objets immuables:

    type ImmutableProduct = Readonly<Product>;
    Copier après la connexion
  • Partial : rend les propriétés facultatives:

    Record<Keys, Type>
    Copier après la connexion
    Copier après la connexion
  • imbriqué Record s : Créez des structures de données hiérarchiques complexes.

  • Conclusion

    Le type Record est un atout précieux dans TypeScript, offrant une façon concise et en sécurité de gérer des objets avec des types de valeur cohérents. Sa flexibilité, combinée à d'autres types d'utilité, permet la création d'un code robuste et maintenable. Pour une exploration plus approfondie, consultez la documentation officielle de typeScript et d'autres ressources.

    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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal