Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mendapatkan Kekunci Antara Muka TypeScript sebagai Susunan Rentetan?

Bagaimana untuk Mendapatkan Kekunci Antara Muka TypeScript sebagai Susunan Rentetan?

Linda Hamilton
Linda Hamiltonasal
2024-10-30 12:35:26366semak imbas

How to Retrieve the Keys of a TypeScript Interface as an Array of Strings?

Mengakses Kekunci Antara Muka TypeScript sebagai Tatasusunan Rentetan

Pengenalan

Bekerja dengan data jadual dalam Typescript memerlukan penggunaan antara muka untuk menentukan lajur struktur. Untuk memanipulasi struktur ini dengan cekap, selalunya perlu mendapatkan semula nama sifat antara muka ini sebagai tatasusunan rentetan.

Penyelesaian

Menggunakan Transformer Tersuai

Sejak TypeScript versi 2.4 , pengubah tersuai menyediakan mekanisme untuk mengekstrak kunci daripada antara muka. Pertimbangkan antara muka berikut:

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

Untuk mendapatkan nama sifat sebagai tatasusunan:

<code class="typescript">import { keys } from 'ts-transformer-keys';

const IMyTable = keys<IMyTable>();

console.log(IMyTable); // ["id", "title", "createdAt", "isDeleted"]</code>

Batasan Transformer Tersuai

Walaupun pengubah tersuai menawarkan penyelesaian yang mudah, mereka memerlukan penggunaan API transformasi Typescript dan bukannya arahan ts. Had ini boleh menghalang kebolehgunaannya.

Alternatif

Dalam senario di mana pengubah tersuai tidak dapat dilaksanakan, pilihan alternatif termasuk:

  • Menggunakan teknik refleksi (tidak disyorkan untuk prestasi sebab)
  • Menentukan tatasusunan nama harta dengan jelas (terdedah kepada ralat manusia dan overhed penyelenggaraan)

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kekunci Antara Muka TypeScript sebagai Susunan 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