Heim >Web-Frontend >js-Tutorial >Wie kann ich ein Array von Schnittstellenschlüsseln in TypeScript erhalten?
Zugriff auf Schnittstellenschlüssel als String-Array in TypeScript
In TypeScript kann es nützlich sein, die Eigenschaftsnamen einer Schnittstelle als Array abzurufen von Saiten. Betrachten Sie die folgende Schnittstelle:
<code class="typescript">export interface IMyTable { id: number; title: string; createdAt: Date; isDeleted: boolean; }</code>
Wir möchten diese Schnittstelle in ein Array wie dieses konvertieren:
<code class="typescript">const IMyTable = ["id", "title", "createdAt", "isDeleted"];</code>
Das Durchlaufen der Eigenschaften einer Schnittstelle zum Extrahieren der Schlüsselnamen ist nicht möglich direkt in TypeScript unterstützt. Es gibt jedoch Lösungen, die benutzerdefinierte Transformatoren verwenden.
Verwendung eines benutzerdefinierten Transformators
Ab TypeScript 2.4 bieten benutzerdefinierte Transformatoren eine Möglichkeit, das Verhalten von TypeScript zu ändern. Wir können einen benutzerdefinierten Transformator definieren, um Schnittstellenschlüssel zu extrahieren.
<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>
Einschränkungen benutzerdefinierter Transformatoren
Benutzerdefinierte Transformatoren haben Einschränkungen. Sie erfordern die Verwendung der TypeScript-Transformations-API anstelle des herkömmlichen tsc-Befehls. Es gibt ein offenes Problem, bei dem Plugin-Unterstützung für benutzerdefinierte Transformatoren angefordert wird.
Andere Überlegungen
Wenn Sie ein Framework verwenden, das Schnittstellen dynamisch generiert, müssen Sie möglicherweise weitergehende Untersuchungen durchführen Lösungen, wie z. B. die Verwendung einer Typ-Utility-Bibliothek oder eines Metaprogrammierungstools wie Reflect.
Das obige ist der detaillierte Inhalt vonWie kann ich ein Array von Schnittstellenschlüsseln in TypeScript erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!