Generator Interface JSON ke TypeScript

Tempel contoh JSON, misalnya respons API atau file konfigurasi, lalu dapatkan interface TypeScript siap pakai lengkap dengan tipe bersarang, properti opsional, dan union type.

Diperbarui
Deklarasikan sebagai
Array

Data kamu tidak pernah meninggalkan komputer kamu. Semua proses berjalan 100% secara lokal di browser kamu.

Apakah alat ini membantu?0.0 0 penilaian
Ubah array JSON ke CSV secara online gratisJSON ke CSV →

Cara menggunakan JSON ke TypeScript

  1. Tempel contoh JSON yang representatif, misalnya respons yang kamu salin dari tab network browser.
  2. Isi nama tipe root (misalnya User atau ApiResponse).
  3. Pilih interface atau type, sintaks array, dan apakah deklarasi perlu di-export atau properti dibuat readonly.
  4. Salin kode hasil generate ke file .ts atau unduh langsung.

Apa fungsi konverter JSON ke TypeScript?

Konverter ini membuat tipe statis dari data contoh. Daripada menulis interface secara manual untuk setiap respons API, kamu cukup menempelkan satu respons asli dan mendapatkan deklarasi TypeScript yang sesuai: satu interface bernama untuk setiap objek bersarang, array yang bertipe, serta union type jika nilainya berbeda-beda. Ini cara tercepat untuk mendapatkan autocomplete dan pengecekan tipe saat kompilasi untuk data dari REST API, webhook, atau file konfigurasi JSON.

Cara tipe disimpulkan

Nilai JSONTipe TypeScript
"teks"string
42, 3.14number
trueboolean
nullnull (digabung dengan tipe lain, misalnya string | null)
{ … }Interface bernama (key profile → Profile)
["a", "b"]string[]
[1, "dua"](number | string)[]
[]unknown[] (tidak ada contoh untuk disimpulkan)

Array berisi objek akan digabung

Jika sebuah array berisi beberapa objek, generator akan menggabungkannya menjadi satu interface, bukan hanya mengambil item pertama. Key yang muncul di sebagian item saja akan menjadi opsional (archived?: boolean), dan key yang nilainya berbeda antar item akan mendapat union type (license: string | null). Nama interface item array diambil dari bentuk tunggal key-nya, misalnya repos → Repo dan categories → Category. Struktur yang sama di tempat berbeda hanya dideklarasikan sekali dan dipakai ulang.

interface vs. type

Untuk bentuk objek, keduanya hampir bisa saling menggantikan. Deklarasi interface bisa diperluas dengan extends dan digabung dengan mendeklarasikan ulang, serta biasanya menghasilkan pesan error yang lebih jelas. Alias type bisa dipakai untuk union, tuple, dan mapped type. Banyak tim menggunakan interface untuk model data, tapi pilih yang sesuai dengan aturan lint kamu (misalnya @typescript-eslint/consistent-type-definitions).

Batasan penyimpulan tipe, periksa hasilnya

Contoh hanya menunjukkan apa yang ada di dalamnya. Field yang bernilai null di contoh akan bertipe null, jadi ubah ke tipe aslinya (misalnya string | null). Tanggal biasanya berupa string ISO dan akan bertipe string, karena JSON tidak punya tipe date. Key yang bukan identifier valid, seperti social-links, otomatis diberi tanda kutip. Untuk validasi runtime pada input yang tidak tepercaya, gabungkan tipe ini dengan schema validator seperti Zod. Rapikan dulu contohmu dengan JSON Formatter, atau konversi konfigurasi YAML dengan YAML ke JSON sebelum membuat tipenya.

Juga dicari sebagai: json ke interface, generator interface typescript, json2ts, json ke type typescript, generate type dari json, konversi json ke ts.

Tool yang cocok dipakai bersama JSON ke TypeScript

  • CSV ke JSON — Tempel CSV atau TSV dan dapatkan array JSON berisi objek.
  • SVG ke JSX Converter — Tempel SVG dari Figma, Illustrator, atau kumpulan ikon, lalu dapatkan komponen React (JSX atau TSX) yang siap pakai, lengkap dengan pratinjau ikon yang aman.
  • cURL ke Code — Tempel perintah curl dari dokumentasi API atau “Copy as cURL” di DevTools browser, lalu dapatkan kode siap pakai untuk enam bahasa, dengan header, body, dan autentikasi yang ikut terbawa.
  • Validator JSON Schema — Tempel schema dan JSON untuk melihat nilai mana yang melanggar aturan, atau buat schema awal dari data contoh.

Pertanyaan yang sering diajukan

Sebaiknya pakai interface atau type untuk data JSON?
Keduanya bisa dipakai untuk bentuk objek biasa. Interface mendukung declaration merging dan extends, sedangkan type alias juga mendukung union dan mapped type. Pilih yang sesuai dengan style guide codebase kamu. Toggle akan mengubah seluruh output.
Bagaimana properti opsional dideteksi?
Pada array berisi objek, properti yang tidak ada di setidaknya satu item akan ditandai opsional dengan ?. Kamu juga bisa membuat semua properti nullable menjadi opsional dengan centang di bawah output.
Kenapa sebuah properti bertipe null?
Karena nilainya null di setiap contoh tempat properti itu muncul, sehingga tidak ada informasi tentang tipe aslinya. Ganti null dengan tipe yang diharapkan, misalnya string | null, atau tempel contoh yang nilainya sudah terisi.
Apakah JSON yang sangat bersarang juga didukung?
Ya. Setiap objek bersarang menjadi interface bernama sendiri yang dirujuk dari induknya, dan struktur yang identik hanya dideklarasikan sekali.
Apakah JSON saya dikirim ke server?
Tidak. Pembuatan tipe sepenuhnya berjalan di browser kamu, jadi aman untuk menempelkan respons dari API internal.
Bisakah saya memasang JSON ke TypeScript sebagai aplikasi web dan memakainya offline?
Bisa. JSON ke TypeScript adalah aplikasi web (PWA) yang bisa dipasang. Pemasangannya lewat browser kamu, bukan diunduh dari toko aplikasi. Klik Pasang aplikasi di bagian atas halaman ini di Chrome atau Edge (Windows, macOS, Linux, ChromeOS) atau di Android. Di iPhone dan iPad, gunakan Bagikan → Tambahkan ke Layar Utama, dan di Safari 17+ pada Mac, gunakan File → Tambahkan ke Dock. Setelah itu, aplikasi akan terbuka di jendelanya sendiri dengan ikonnya sendiri. Karena berjalan sepenuhnya di browser kamu, aplikasi ini tetap bisa dipakai offline. Firefox di desktop tidak bisa memasang aplikasi web. Cara memasang aplikasi.

Tool terkait