Fungsinya
Generator JSON ke TypeScript membaca contoh JSON, seperti respons API atau file konfigurasi, lalu menulis interface TypeScript yang mendeskripsikannya. Alih-alih mengetik setiap field secara manual, tempelkan satu respons asli dan dapatkan tipe yang langsung bisa dipakai di kode, untuk hasil fetch, state Redux, atau data uji.
Generator memeriksa setiap nilai, bukan hanya yang pertama. Angka menjadi number, teks menjadi string, objek bersarang mendapat interface sendiri, dan item array digabung, sehingga field yang hanya muncul di sebagian item ditandai opsional dan field yang kadang null diberi tipe nullable.
Cara menggunakan
- Tempelkan JSON ke kolom input, unggah file
.json, atau klik Contoh. - Atur nama tipe akar dan pilih gaya:
interfaceatautype, null sebagai| nullatau field opsional, propertireadonly, dan apakah setiap deklarasi diberiexport. - Salin TypeScript atau unduh sebagai file
.ts.
JSON yang tidak valid dilaporkan beserta baris dan kolom masalahnya, sehingga Anda bisa langsung memperbaiki contohnya.
Contoh
JSON ini:
{ "id": 7, "name": "Ada", "tags": ["admin"], "manager": { "id": 1, "email": null } }
menjadi deklarasi berikut:
export interface Root {
id: number;
name: string;
tags: string[];
manager: Manager;
}
export interface Manager {
id: number;
email: null;
}
Tips
- Satu contoh hanya menunjukkan isinya. Jika sebuah field bisa berupa string atau null, sertakan contoh keduanya, atau masukkan beberapa contoh ke dalam array agar digabung.
- Nama field yang bukan identifier valid, seperti first-name, ditulis dalam tanda kutip sehingga hasilnya selalu bisa dikompilasi.
- Hasilnya adalah titik awal. Persempit field string menjadi union literal atau
Datebila Anda tahu lebih banyak daripada contohnya. - Butuh Go? Konverter JSON ke Go memakai inferensi yang sama untuk menulis struct dengan tag json.
FAQ
› Bagaimana objek bersarang ditangani?
Setiap objek bersarang menjadi interface bernama tersendiri yang namanya diambil dari kuncinya dalam PascalCase, jadi field address menghasilkan interface Address. Objek dengan struktur yang persis sama berbagi satu interface, dan nama yang bentrok diberi nomor, seperti Address2.
› Bagaimana tipe array ditentukan?
Semua item array digabung menjadi satu tipe item. Array objek menjadi array dari satu interface yang dinamai bentuk tunggal kuncinya, jadi orders menghasilkan Order[]. Array campuran menjadi union seperti (string | number)[] dan array kosong menjadi unknown[].
› Kapan sebuah field ditandai opsional?
Saat field itu tidak ada di sebagian objek dalam array. Field yang selalu ada tetapi kadang bernilai null secara default ditulis sebagai T | null. Ubah nilai null ke opsional untuk membuang null dan menandai field sebagai opsional dengan tanda tanya.
› Sebaiknya pilih interface atau type?
Keduanya mendeskripsikan bentuk objek yang sama. Interface bisa diperluas dan digabung, dan banyak panduan gaya lebih menyukainya untuk tipe objek. Alias type berguna jika Anda ingin menggabungkan hasil dengan union atau mapped type. Pilih yang dipakai di kode Anda.
› Apakah JSON saya dikirim ke server?
Tidak. Tipe disimpulkan di browser Anda, jadi aman menempelkan respons API sungguhan.