Maison >interface Web >js tutoriel >Comment puis-je obtenir un tableau de touches d'interface dans TypeScript ?

Comment puis-je obtenir un tableau de touches d'interface dans TypeScript ?

DDD
DDDoriginal
2024-10-29 09:31:30971parcourir

How Can I Get an Array of Interface Keys in TypeScript?

Accès aux clés d'interface sous forme de tableau de chaînes dans TypeScript

Dans TypeScript, il peut être utile d'obtenir les noms de propriétés d'une interface sous forme de tableau de cordes. Considérons l'interface suivante :

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

Nous aimerions convertir cette interface en un tableau comme celui-ci :

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

Itérer dans les propriétés d'une interface pour extraire les noms de clés n'est pas directement pris en charge dans TypeScript. Cependant, il existe des solutions utilisant des transformateurs personnalisés.

Utilisation d'un transformateur personnalisé

Depuis TypeScript 2.4, les transformateurs personnalisés offrent un moyen de modifier le comportement de TypeScript. Nous pouvons définir un transformateur personnalisé pour extraire les clés d'interface.

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

Limitations des transformateurs personnalisés

Les transformateurs personnalisés ont des limites. Ils nécessitent l'utilisation de l'API de transformation TypeScript au lieu de la commande tsc traditionnelle. Il existe un problème ouvert demandant la prise en charge des plugins pour les transformateurs personnalisés.

Autres considérations

Si vous utilisez un framework qui génère des interfaces de manière dynamique, vous devrez peut-être explorer des solutions plus avancées. des solutions, comme l'utilisation d'une bibliothèque d'utilitaires de types ou d'un outil de métaprogrammation comme Reflect.

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