Maison  >  Article  >  interface Web  >  Comment puis-je extraire un tableau de clés de propriété à partir d’une interface TypeScript ?

Comment puis-je extraire un tableau de clés de propriété à partir d’une interface TypeScript ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-31 07:28:30636parcourir

How Can I Extract an Array of Property Keys from a TypeScript Interface?

Clés de propriété d'interface TypeScript sous forme de tableau

Dans le développement TypeScript moderne, il est courant de rencontrer des interfaces complexes qui définissent la structure de divers modèles de données. Il est souvent nécessaire d'extraire un tableau de noms de propriétés d'une interface pour effectuer des opérations dynamiques ou créer des valeurs dérivées.

Exemple de cas d'utilisation

Considérons l'interface suivante représentant une table de base de données :

<code class="typescript">export interface IMyTable {
  id: number;
  title: string;
  createdAt: Date;
  isDeleted: boolean;
}</code>

Nous aimerions obtenir un tableau de noms de colonnes à partir de cette interface :

<code class="typescript">const IMyTable = ["id", "title", "createdAt", "isDeleted"];</code>

Solution utilisant un transformateur personnalisé

Depuis la version 2.3 de TypeScript (avec corrections de bugs en 2.4 ), les transformateurs personnalisés offrent une solution élégante à ce problème. Voici comment utiliser la bibliothèque "ts-transformer-keys" :

<code class="typescript">import { keys } from 'ts-transformer-keys';

interface Props {
  id: string;
  name: string;
  age: number;
}
const keysOfProps = keys<Props>();

console.log(keysOfProps); // ['id', 'name', 'age']</code>

Cette approche nécessite d'utiliser l'API de transformation TypeScript plutôt que d'exécuter directement "tsc". Il est important de noter que les transformateurs personnalisés en sont encore à leurs débuts et peuvent nécessiter une configuration supplémentaire.

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:
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