Bepul JSON dan TypeScript ga Konvertor

Istalgan JSON ob'ekti yoki massividan TypeScript interfeyslari yoki tur alyaslarini yarating. JSON ingizni joylashtiring va darhol tayyor TypeScript turlarini oling.

Yuklangandan keyin oflayn ishlaydi
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;
}

Qanday ishlaydi

Bu asbob nol tashqi kutubxona bilan qo'lda yozilgan rekursiv tur chiqarish algoritmidan foydalanadi — kirishni tekshirish va tahlil qilish uchun JSON.parse, so'ng JSON daraxtidagi har bir qiymatni aylanib o'tuvchi va TypeScript interfeysi yoki tur deklaratsiyalarini to'g'ridan-to'g'ri brauzerda chiqaruvchi maxsus aylanish. Hech narsa serverga yuborilmaydi.

  1. 1
    JSON tahlil qilinadi va tekshiriladi
    Kiritishingiz JSON.parse'ga beriladi. Agar u muvaffaqiyatsiz bo'lsa, aniq tahlil xatosi darhol kiritish ostida chiqadi. Muvaffaqiyatli tahlil qolgan o'girishni boshqaradigan turlangan qiymat daraxtini ishlab chiqaradi.
  2. 2
    Rekursiv tur chiqarish
    Rekursiv getType funksiyasi har bir tugunni aylanib o'tadi: primitivlar string, number, boolean yoki null'ga xaritalanadi; obyektlar yangi nomlangan interfeysni ishga tushiradi; obyektlar massivlarining kalitlari barcha elementlar bo'ylab birlashtiriladi, shunda faqat ba'zi elementlarda mavjud kalitlar ixtiyoriy bo'lib qoladi va ziddiyatli qiymat turlari | bilan birlashtiriladi.
  3. 3
    To'qnashuvdan-xoli interfeys nomlash
    Har bir ichma-ich obyekt uning JSON kalitidan olingan PascalCase nomga ega bo'ladi (snake_case, kebab-case va bo'shliqlar hammasi normalizatsiya qilinadi). Agar ikkita tarkibiy jihatdan boshqacha obyekt bir xil nomni baham ko'rsa, oldingi ta'rifni jimgina qayta yozish o'rniga raqamli qo'shimcha (Data, Data2, …) qo'shiladi.
  4. 4
    Chiqish ko'rsatiladi va yuklab olinadi
    Ichma-ich interfeyslar avval chiqariladi, so'ng tanlovingizga qarab export interface yoki export type sifatida formatlangan ildiz turi. Natijani buferga nusxalash yoki .ts fayli sifatida yuklab olish mumkin — hammasi standart Blob bilan qurilgan, serverga borib-kelishsiz.

Tegishli asboblar

Ko'p so'raladigan savollar