Maison >interface Web >js tutoriel >Comment puis-je obtenir un tableau de touches d'interface dans 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!