在TypeScript 中以字串陣列形式存取介面鍵
在TypeScript 中,以陣列形式取得有用介面的屬性名稱可能會很有用介面的屬性名稱字串。考慮以下介面:
<code class="typescript">export interface IMyTable { id: number; title: string; createdAt: Date; isDeleted: boolean; }</code>
我們希望將此介面轉換為這樣的陣列:
<code class="typescript">const IMyTable = ["id", "title", "createdAt", "isDeleted"];</code>
迭代介面的屬性以擷取鍵名稱是不可行的TypeScript 直接支援。但是,有一些使用自訂轉換器的解決方案。
使用自訂轉換器
從 TypeScript 2.4 開始,自訂轉換器提供了一種修改 TypeScript 行為的方法。我們可以定義一個自訂轉換器來提取介面鍵。
<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>
自訂轉換器的限制
自訂轉換器有限制。它們需要使用 TypeScript 轉換 API,而不是傳統的 tsc 指令。有一個未解決的問題,要求自訂轉換器的插件支援。
其他注意事項
如果您使用動態產生介面的框架,您可能需要探索更進階的解決方案,例如使用類型實用程式庫或像Reflect 這樣的元編程工具。
以上是如何在 TypeScript 中取得介面鍵數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!