Penukar JSON ke TypeScript
Tampal respons API dan dapatkan interface atau type alias TypeScript yang sedia digunakan, dengan jenis bersarang, medan optional dan kesatuan null disimpulkan untuk anda.
Berjalan dalam pelayar andaTanpa pendaftaranTiada apa dimuat naik
Cara menggunakan JSON ke TypeScript
- Tampal contoh JSON, seperti respons API, ke dalam kotak kiri atau buka fail
.json. - Tetapkan nama jenis akar (contohnya
UseratauApiResponse). - Pilih deklarasi
interfaceatautypedan togolexport,readonlyatau semua medan optional. - Pilih
unknown(lebih selamat) atauanyuntuk nilai yang tidak dapat didedahkan oleh contoh, seperti array kosong dan null. - Salin kod yang dijana atau muat turunnya sebagai fail
.ts.
Cara jenis disimpulkan
- Primitif: rentetan, nombor dan boolean dipetakan kepada
string,numberdanboolean. - Objek bersarang menjadi interface bernama tersendiri dalam PascalCase, jadi
billing_addressmenjadiBillingAddress. - Array objek digabungkan menjadi satu jenis item, dinamakan dalam bentuk tunggal:
usersmemberikanUser[]. Kunci yang tiada dalam sesetengah item menjadi optional (key?:). - Nilai null digabungkan dengan nilai lain yang dilihat untuk kunci itu:
string | null. Kunci yang sentiasanullkembali kepadaunknownatauany. - Array campuran menjadi array kesatuan seperti
(number | string)[]. - Bentuk yang sama diisytiharkan sekali dan digunakan semula, dan bentuk berbeza yang akan berkongsi nama mendapat akhiran nombor.
- Kunci yang bukan pengecam sah, seperti
"first-name"atau"2fa", diletakkan dalam petikan.
interface lwn. type
Untuk bentuk objek biasa, kedua-duanya hampir boleh ditukar ganti. Deklarasi interface boleh dilanjutkan dan digabungkan, dan memberikan ralat pengkompil yang sedikit lebih jelas. Alias type juga boleh menyatakan kesatuan dan mapped type. Banyak pasukan menggunakan interface untuk model API dan type untuk yang lain; pilih yang dijangka oleh pangkalan kod atau linter anda (@typescript-eslint/consistent-type-definitions).
Dapatkan jenis yang lebih baik daripada contoh anda
Jenis hanya boleh selengkap contohnya. Tampal respons yang merangkumi medan optional, atau array dengan beberapa item yang pelbagai, supaya penjana dapat mengesan kunci optional dan nullable. Nilai seperti tarikh dan enum tiba sebagai rentetan biasa dalam JSON; sempitkan secara manual selepas itu, contohnya status: 'active' | 'disabled'. Untuk pengesahan masa jalan, gandingkan jenis yang dijana dengan pustaka skema seperti Zod.
Soalan lazim
Adakah JSON saya dimuat naik?
Bagaimana sifat optional dikesan?
?. Dengan satu objek sahaja, setiap kunci diperlukan, melainkan anda menandakan Semua pilihan.Patutkah saya guna <code>unknown</code> atau <code>any</code>?
unknown lebih selamat: TypeScript memaksa anda menyempitkan nilai sebelum menggunakannya. any mematikan semakan jenis untuk nilai itu. Gunakannya hanya jika anda bercadang memperhalusi jenis kemudian.Mengapa tarikh ISO ditaip sebagai <code>string</code>?
new Date() selepas penghuraian, tukar sifat itu kepada Date dalam model anda.