JSON ke Interface TypeScript

Tempel contoh JSON dari respons API atau berkas pengaturan. Alat menulis interface TypeScript yang menggambarkannya, dengan nama untuk setiap objek bersarang. Tidak ada yang Anda tempel meninggalkan peramban.

Gratis Berjalan di peramban Anda Diperiksa Selasa, 10 November 2026

Objek atau larik JSON yang umum. Beberapa item larik digabung menjadi satu interface.

Nama sederhana seperti Root, Product atau ApiResponse.

Centang jika tipenya diimpor di berkas lain.

Hasil

Interface TypeScript — Salin kodenya, atau unduh sebagai types.ts.
Deklarasi — Interface dan alias tipe dalam kode.
Interface TypeScript

Alat ini berjalan di peramban Anda. Apa yang Anda masukkan tidak dikirim kepada kami.

Cara memakai

  1. Tempel nilai JSON yang umum ke Contoh JSON. Tipenya muncul saat Anda mengetik.
  2. Ketik nama di bawah Nama interface akar untuk objek paling luar, seperti Product.
  3. Hilangkan centang Tulis export sebelum setiap deklarasi jika tipenya tetap di berkas yang sama.
  4. Salin Interface TypeScript, atau unduh sebagai types.ts.

Cara tipe dihitung

Setiap objek JSON menjadi interface. Namanya berasal dari kunci yang menyimpannya, dalam PascalCase: kunci first-name menjadi FirstName. Item larik mengambil bentuk tunggal dari kunci larik, sehingga items menjadi Item. Ketika nama sudah dipakai, nama induk diletakkan di depannya.

String, angka dan boolean menjadi string, number dan boolean. null ditulis sebagai null dalam union, seperti number | null. Larik nilai menjadi tipe yang diikuti []; larik kosong menjadi unknown[] karena contoh tidak menyatakan isinya.

kunci "first-name" -> properti "first-name": string;   items -> Item[]

Beberapa contoh dalam satu larik

Daftar objek dibaca sebagai satu bentuk. Kunci yang muncul di setiap item wajib; kunci yang hilang dari sebagian item ditulis dengan tanda tanya, sebagai opsional. Kunci yang memuat tipe berbeda di item yang berbeda menjadi union, dengan string lebih dulu, lalu number, boolean, interface, larik dan null.

Contoh hanya menampilkan nilai yang dimilikinya. Kunci yang kadang dihilangkan API nyata mungkin tidak ada dalam satu contoh, jadi tambahkan item kedua yang memilikinya jika Anda ingin tipe menampilkannya sebagai opsional.

Contoh: sampel bawaan

Contoh bawaan adalah satu objek dengan lima kunci. Kunci owner memuat objek, sehingga kode memiliki interface Owner. Kunci items adalah larik dari dua objek, sehingga kode memiliki interface Item. Kunci sku dan price ada di kedua item dan wajib; kunci discount bernilai null di satu item dan angka di item lain, sehingga tipenya number | null; kunci note hanya muncul di satu item sehingga opsional.

Hasilnya memiliki tiga deklarasi: Root, Owner dan Item, dan jumlahnya menunjukkan 3.

Pertanyaan yang sering diajukan

Mengapa sebuah bidang diberi tanda tanya?

Bidang itu hilang dari setidaknya satu objek contoh. Bidang seperti itu mungkin tidak ada dalam data nyata, jadi TypeScript memperlakukannya sebagai opsional, dan kode yang membacanya harus memeriksanya terlebih dahulu.

Mengapa bidang saya menampilkan union seperti string | number?

Item yang berbeda memuat tipe yang berbeda untuk kunci itu. Tipe itu mencantumkan setiap tipe yang terlihat dalam contoh, sehingga kode harus memeriksa tipe mana yang dimilikinya sebelum memakai nilainya.

Apakah alat memeriksa data API nyata saya?

Tidak. Ia menulis tipe dari contoh yang Anda tempel. Contoh dengan satu item tidak dapat menampilkan bidang yang hanya muncul kemudian, jadi gunakan respons yang umum dengan beberapa item jika memungkinkan.

Mengapa beberapa nama properti ditulis dalam tanda kutip?

Nama yang bukan pengenal sederhana, seperti first-name atau 2fa, harus diberi tanda kutip dalam TypeScript. Nama yang merupakan pengenal yang valid ditulis tanpa tanda kutip.

Bisakah saya memakai hasilnya dengan JavaScript?

Interface hanya ada di TypeScript. Ia dihapus saat kode dikompilasi, jadi proyek JavaScript memerlukan JSON yang diperiksa dengan cara lain, atau langkah build TypeScript.

Sumber

Angka dan teks terakhir diperiksa pada Selasa, 10 November 2026.

Kami memakai cookie yang diperlukan agar situs berjalan. Dengan persetujuan Anda, Google juga memakai cookie iklan untuk menampilkan iklan yang dipersonalisasi. Jika Anda menolaknya, iklan tetap tampil, tetapi tidak dipersonalisasi.