Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mendapatkan Kunci Antara Muka TypeScript sebagai Tatasusunan Rentetan?

Bagaimanakah Saya Boleh Mendapatkan Kunci Antara Muka TypeScript sebagai Tatasusunan Rentetan?

Linda Hamilton
Linda Hamiltonasal
2024-10-29 19:04:30617semak imbas

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

Kunci Antara Muka TypeScript sebagai Tatasusunan Rentetan

Satu senario biasa dalam pembangunan TypeScript ialah mengendalikan antara muka jadual pangkalan data dan lajurnya masing-masing. Sebagai contoh, pertimbangkan antara muka yang ditakrifkan sebagai:

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

Seseorang mungkin perlu mendapatkan semula nama sifat antara muka ini sebagai tatasusunan rentetan, seperti:

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

Ini amat penting apabila mengakses antara muka jadual secara dinamik di mana penetapan objek/tatasusunan langsung tidak dapat dilaksanakan.

Penyelesaian

Untuk mencapai ini, seseorang boleh menggunakan pengubah tersuai yang diperkenalkan dalam TypeScript 2.3, tersedia sebagai pakej pihak ketiga :

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

Pengubah ini memerlukan penggunaan API transformasi TypeScript dan bukannya menggunakan arahan tsc secara langsung. Walau bagaimanapun, terdapat isu berterusan yang meminta sokongan pemalam untuk pengubah tersuai untuk memudahkan penggunaannya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Kunci Antara Muka TypeScript sebagai Tatasusunan Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn