Langsung ke konten utama

Konverter JSON ke TypeScript gratis

Hasilkan antarmuka TypeScript atau alias tipe dari objek atau array JSON apa pun. Tempel JSON Anda dan dapatkan tipe TypeScript siap pakai secara instan.

Berfungsi offline setelah dimuat
export interface User {
  id: number;
  name: string;
  email: string;
  isActive: boolean;
  score: number;
  tags: string[];
  address?: null;
}

export interface Root {
  user: User;
  createdAt: string;
  version: number;
}

Penggunaan umum

  • Buat Tipe TypeScript dari Respons APITempel respons JSON API dan buat interface TypeScript secara instan untuk membuat kode front-end Anda aman tipe.
  • Tipe TypeScript untuk Objek Konfigurasi dan PengaturanBuat interface TypeScript dari file konfigurasi JSON untuk menambahkan keamanan tipe ke pengaturan aplikasi Anda.
  • Buat Tipe TypeScript dari Catatan Basis DataUbah catatan database yang diekspor JSON atau hasil kueri ORM menjadi interface TypeScript untuk pengetikan lapisan data.
  • Tipe Data Mock dan Fixture PengujianBuat interface TypeScript dari data mock JSON dan fixture pengujian untuk mengetik tes unit dan cerita Storybook Anda.
  • Tipe Respons API Pihak KetigaBuat interface TypeScript dari respons API pihak ketiga di mana tipe resmi hilang atau ketinggalan zaman.

Cara kerja

Alat ini menggunakan algoritma inferensi tipe rekursif tulisan tangan tanpa library eksternal apa pun — JSON.parse untuk memvalidasi dan mengurai masukan, lalu penelusuran khusus yang menelusuri setiap nilai dalam pohon JSON dan mengeluarkan deklarasi interface atau type TypeScript langsung di browser. Tidak ada yang dikirim ke server.

  1. 1
    JSON diurai dan divalidasi
    Masukan Anda diteruskan ke JSON.parse. Jika gagal, error penguraian yang tepat langsung ditampilkan di bawah masukan. Penguraian yang berhasil menghasilkan pohon nilai bertipe yang menjalankan sisa konversi.
  2. 2
    Inferensi tipe rekursif
    Fungsi getType rekursif menelusuri setiap simpul: primitif dipetakan ke string, number, boolean, atau null; objek memicu interface bernama baru; array objek memiliki kuncinya digabungkan di seluruh elemen sehingga kunci yang hanya ada di sebagian item menjadi opsional dan tipe nilai yang bertentangan digabungkan dengan |.
  3. 3
    Penamaan interface yang aman-tabrakan
    Setiap objek bersarang mendapat nama PascalCase yang diturunkan dari kunci JSON-nya (snake_case, kebab-case, dan spasi semua dinormalisasi). Jika dua objek yang secara struktural berbeda akan berbagi nama yang sama, sufiks numerik ditambahkan (Data, Data2, …) alih-alih diam-diam menimpa definisi sebelumnya.
  4. 4
    Keluaran dirender dan dapat diunduh
    Interface bersarang dikeluarkan terlebih dahulu, lalu tipe root, diformat sebagai export interface atau export type tergantung pilihan Anda. Hasilnya dapat disalin ke clipboard atau diunduh sebagai file .ts — semuanya dibangun dengan Blob standar dan tanpa perjalanan pulang-pergi server.

Alat terkait

Pertanyaan yang sering diajukan