Maison  >  Article  >  interface Web  >  Comment puis-je obtenir les clés d'une interface TypeScript sous forme de tableau de chaînes ?

Comment puis-je obtenir les clés d'une interface TypeScript sous forme de tableau de chaînes ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-29 19:04:30568parcourir

How Can I Get the Keys of a TypeScript Interface as a String Array?

Clés d'une interface Typescript sous forme de tableau de chaînes

Un scénario courant dans le développement TypeScript consiste à gérer une interface de table de base de données et ses colonnes respectives. Par exemple, considérons une interface définie comme :

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

On peut avoir besoin de récupérer les noms de propriétés de cette interface sous la forme d'un tableau de chaînes, comme :

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

Ceci est particulièrement essentiel lors de l'accès dynamique aux interfaces de table où l'affectation directe d'objet/tableau n'est pas réalisable.

Solution

Pour y parvenir, on peut utiliser un transformateur personnalisé introduit dans TypeScript 2.3, disponible sous forme de package tiers :

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

Ce transformateur nécessite l'utilisation de l'API de transformation TypeScript au lieu d'appeler directement la commande tsc. Cependant, il existe un problème persistant nécessitant la prise en charge des plugins pour les transformateurs personnalisés afin de simplifier leur utilisation.

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