Lompat ke konten
SPCXTools

JSON ke TypeScript

Ubah data JSON menjadi interface atau type TypeScript secara instan dengan nama root dan opsi export yang dapat disesuaikan.

Berjalan secara lokal — file tidak pernah meninggalkan perangkat Anda

Memuat alat…

Cara menggunakan JSON ke TypeScript

  1. 1Tempel atau ketik objek atau array JSON Anda ke dalam kotak input. Anda juga dapat mengklik Sample untuk melihat cara kerjanya.
  2. 2Atur nama root untuk objek tingkat atas Anda (bawaan: "Root").
  3. 3Pilih apakah ingin membuat interface atau type alias TypeScript, dan aktifkan/nonaktifkan kata kunci export.
  4. 4Salin kode TypeScript yang dihasilkan ke clipboard atau unduh sebagai file .ts.

Konverter JSON ke TypeScript yang cepat dan privat

Saat bekerja dengan API eksternal, file konfigurasi yang kompleks, atau database dokumen di proyek TypeScript, menulis definisi tipe secara manual bisa merepotkan dan rentan kesalahan. Konverter json ke typescript online gratis ini langsung mengubah objek atau array JSON yang valid menjadi definisi TypeScript yang strongly typed.

Karena alat ini berjalan sepenuhnya secara lokal di browser web Anda, data Anda tidak akan pernah diunggah ke server. Anda dapat dengan aman menempelkan respons API eksklusif, dump database internal, atau data konfigurasi yang sensitif tanpa perlu mengkhawatirkan privasi data. Konversi terjadi seketika saat Anda mengetik atau menempelkan data, memungkinkan Anda untuk beriterasi dengan cepat.

Buat tipe TypeScript dari JSON dengan fleksibel

Setiap codebase memiliki panduan gaya dan konvensi tersendiri. Alat ini menawarkan beberapa opsi konfigurasi untuk memastikan output sesuai dengan kebutuhan proyek Anda:

Nama Root Kustom: Secara default, objek tingkat atas dinamai Root. Anda dapat dengan mudah mengubahnya agar sesuai dengan model domain Anda, seperti UserResponse, AppConfig, atau ProductList.

Interface vs. Type: Anda dapat memilih apakah akan membuat interface json ke ts atau type alias. Interface sering kali lebih disukai untuk bentuk objek dalam pola berorientasi objek karena mendukung penggabungan deklarasi (declaration merging) dan dapat diperluas (extend). Type sangat serbaguna dan sering kali lebih disukai dalam pola pemrograman fungsional. Alat ini memungkinkan Anda beralih di antara keduanya hanya dengan satu klik.

Keyword Export: Centang kotak export untuk otomatis menambahkan keyword export di awal tipe yang dibuat, sehingga langsung siap diimpor ke modul lain dalam aplikasi Anda.

Null Opsional: Pada banyak JSON API, nilai yang tidak ada atau tidak terdefinisi direpresentasikan sebagai null. Dalam lingkungan TypeScript yang ketat (strict), Anda mungkin ingin menandai field ini sebagai opsional (menggunakan sintaks ?:) daripada mewajibkan tipe null. Mencentang kotak "Optional null" akan otomatis menangani pola ini, sehingga Anda tidak perlu repot menambahkan tanda tanya secara manual ke banyak field.

Cara kerja inferensi tipe dari JSON

Saat Anda memberikan payload JSON, konverter akan menganalisis nilainya secara mendalam untuk menyimpulkan tipe primitif TypeScript yang tepat. String, number, dan boolean dipetakan langsung ke padanannya dalam TypeScript. Objek bersarang diproses secara rekursif menjadi interface bersarang atau tipe objek inline, menjaga struktur data Anda tetap memiliki tipe yang ketat hingga ke level terbawah.

Untuk array, alat ini memeriksa elemen di dalamnya untuk menentukan tipe yang paling akurat. Jika array berisi data yang seragam, alat ini akan menghasilkan tipe array sederhana seperti string[] atau number[]. Jika array berisi tipe data campuran, alat ini secara cerdas membuat tipe union, seperti (string | number)[]. Jika array benar-benar kosong, default-nya adalah any[] karena tidak ada data yang tersedia untuk menyimpulkan tipe yang lebih spesifik.

Kasus penggunaan umum

Mengonsumsi REST API: Saat mengintegrasikan endpoint baru, Anda sering kali menerima respons JSON yang besar dan bersarang (nested). Menempelkan respons tersebut ke konverter akan langsung memberikan interface yang tepat yang dibutuhkan untuk menentukan tipe pemanggilan fetch atau axios Anda. Hal ini memungkinkan pengecekan tipe yang ketat dan autolengkap (autocomplete) yang kaya di IDE Anda, sehingga mencegah error runtime akibat salah ketik pada nama properti.

Migrasi proyek JavaScript: Jika Anda sedang memigrasikan basis kode JavaScript lama ke TypeScript secara bertahap, Anda dapat menggunakan file konfigurasi JSON yang ada atau payload mock data untuk menyusun kerangka model data Anda dengan cepat tanpa harus menulisnya dari awal.

Bekerja dengan database NoSQL: Database dokumen seperti MongoDB sering kali mengembalikan struktur JSON yang kompleks. Menghasilkan tipe untuk dokumen-dokumen ini akan memastikan logika aplikasi Anda menangani data dengan aman dan mematuhi skema database Anda.

Tips untuk hasil terbaik

  • Pastikan JSON benar-benar valid: Berbeda dengan objek JavaScript standar, JSON mewajibkan tanda kutip ganda pada semua key dan nilai string, serta tidak mengizinkan koma di akhir. Jika payload Anda berantakan atau berupa object literal JavaScript, Anda bisa menggunakan JSON Formatter terlebih dahulu untuk memvalidasi dan merapikannya.
  • Berikan sampel yang representatif: Akurasi tipe yang dihasilkan sangat bergantung pada data yang diberikan. Jika sebuah API terkadang mengembalikan string dan terkadang number untuk field tertentu, pastikan sampel JSON Anda mencakup keduanya dalam sebuah array, atau sesuaikan secara manual tipe yang dihasilkan menjadi union nantinya. Semakin lengkap sampel data Anda, semakin akurat definisi TypeScript yang dihasilkan.
  • Konversi dari format lain: Jika data Anda berasal dari format lain, Anda mungkin perlu mengonversinya terlebih dahulu. Sebagai contoh, Anda bisa menggunakan tool XML to JSON atau YAML to JSON untuk mendapatkan payload JSON yang valid sebelum membuat definisi TypeScript Anda.

Pertanyaan yang sering diajukan

Bagaimana cara konverter menyimpulkan tipe data?
Alat ini menganalisis nilai aktual dalam data JSON Anda. String menjadi string, angka menjadi number, boolean menjadi boolean, serta objek atau array bersarang dikonversi secara rekursif menjadi tipe atau interface bersarang.
Apa yang terjadi jika JSON saya memiliki array dengan tipe data campuran?
Alat ini akan menghasilkan union type (contohnya, (string | number)[]) yang secara akurat mencerminkan berbagai tipe data yang ada di dalam array tersebut.
Apa fungsi pengaturan "Optional null"?
Jika diaktifkan, setiap properti JSON dengan nilai null akan ditandai sebagai properti opsional dalam definisi TypeScript. Ini sangat berguna untuk menangani respons API yang tidak lengkap di mana data yang hilang diwakili oleh null.
Bisakah saya membuat type alias alih-alih interface?
Ya, Anda dapat mengubah pengaturan gaya ke "type" untuk menghasilkan type Root = { ... } alih-alih interface Root { ... }.
Apakah data JSON saya dikirim ke server?
Tidak. Semua proses parsing dan konversi terjadi secara lokal di browser Anda. Data Anda tidak pernah diunggah, sehingga sepenuhnya aman untuk respons API yang bersifat rahasia atau sensitif.
Mengapa JSON saya menyebabkan error?
Input harus berupa JSON yang benar-benar valid. Masalah umum biasanya meliputi hilangnya tanda kutip pada kunci (key), adanya koma di akhir (trailing comma), atau penggunaan tanda kutip tunggal alih-alih tanda kutip ganda.