Konverter JSON ke TypeScript
Tempel respons API dan dapatkan interface atau type alias TypeScript yang siap pakai, dengan tipe bersarang, field opsional, dan union null yang disimpulkan otomatis.
Berjalan di browser AndaTanpa daftarTidak ada yang diunggah
Cara menggunakan JSON ke TypeScript
- Tempel contoh JSON, misalnya respons API, ke kotak kiri atau buka file
.json. - Atur nama tipe root (misalnya
UseratauApiResponse). - Pilih deklarasi
interfaceatautypedan aktifkanexport,readonly, atau semua field opsional. - Pilih
unknown(lebih aman) atauanyuntuk nilai yang tidak bisa diketahui dari contoh, seperti array kosong dan null. - Salin kode yang dihasilkan atau unduh sebagai file
.ts.
Cara tipe disimpulkan
- Primitif: string, angka, dan boolean dipetakan ke
string,numberdanboolean. - Objek bersarang menjadi interface tersendiri dengan nama PascalCase, jadi
billing_addressmenjadiBillingAddress. - Array berisi objek digabung menjadi satu tipe item dengan nama bentuk tunggal:
usersmenghasilkanUser[]. Key yang tidak ada di sebagian item menjadi opsional (key?:). - Nilai null digabung dengan nilai lain yang terlihat untuk key tersebut:
string | null. Key yang selalunullmenjadiunknownatauany. - Array campuran menjadi array union seperti
(number | string)[]. - Bentuk yang identik dideklarasikan sekali lalu dipakai ulang, dan bentuk berbeda yang akan berbagi nama mendapat akhiran angka.
- Key yang bukan identifier valid, seperti
"first-name"atau"2fa", diberi tanda kutip.
interface vs. type
Untuk bentuk objek biasa, keduanya hampir bisa saling menggantikan. Deklarasi interface bisa di-extend dan digabung, serta memberi error compiler yang sedikit lebih jelas. Alias type juga bisa mengekspresikan union dan mapped type. Banyak tim memakai interface untuk model API dan type untuk hal lainnya; pilih yang diharapkan codebase atau linter Anda (@typescript-eslint/consistent-type-definitions).
Dapatkan tipe yang lebih baik dari contoh Anda
Tipe hanya bisa selengkap contohnya. Tempel respons yang menyertakan field opsional, atau array dengan beberapa item yang bervariasi, agar generator bisa mendeteksi key opsional dan nullable. Nilai seperti tanggal dan enum datang sebagai string biasa di JSON; persempit secara manual setelahnya, misalnya status: 'active' | 'disabled'. Untuk validasi runtime, pasangkan tipe yang dihasilkan dengan library skema seperti Zod.
Pertanyaan yang sering diajukan
Apakah JSON saya diunggah?
Bagaimana properti opsional dideteksi?
?. Dengan satu objek saja, semua key wajib, kecuali Anda mencentang Semua opsional.Sebaiknya memakai <code>unknown</code> atau <code>any</code>?
unknown lebih aman: TypeScript mengharuskan Anda mempersempit nilainya sebelum digunakan. any mematikan pemeriksaan tipe untuk nilai itu. Gunakan hanya jika Anda berencana memperbaiki tipenya nanti.Mengapa tanggal ISO diberi tipe <code>string</code>?
new Date() setelah parsing, ubah properti itu menjadi Date di model Anda.