پرش به محتوای اصلی

تبدیل JSON به TypeScript رایگان

رابط‌ها یا نام مستعارهای نوع TypeScript را از هر شیء یا آرایه JSON تولید کنید. JSON خود را وارد کنید و فوری انواع TypeScript آماده دریافت کنید.

پس از بارگذاری آفلاین کار می‌کند
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;
}

کاربردهای رایج

  • انواع TypeScript را از پاسخ های API تولید کنیدپاسخ JSON API را چسبانید و بلافاصله رابط های TypeScript را تولید کنید تا کد front-end خود را ایمن کنید.
  • انواع TypeScript برای اشیاء پیکربندی و تنظیماترابط های TypeScript را از فایل های پیکربندی JSON تولید کنید تا ایمنی نوع را به تنظیمات برنامه اضافه کنید.
  • انواع TypeScript را از رکوردهای پایگاه داده تولید کنیدرکوردهای پایگاه داده را که به JSON صادر شده اند یا نتایج پرس و جو ORM را به رابط های TypeScript برای تایپ لایه داده تبدیل کنید.
  • داده های Mock و Fix های تست را تایپ کنیدرابط های TypeScript را از داده های mock JSON و fixture های تست تولید کنید تا تست های واحد و داستان های Storybook خود را تایپ کنید.
  • انواع پاسخ های API شخص ثالثرابط های TypeScript را از پاسخ های API شخص ثالث تولید کنید جایی که انواع رسمی وجود ندارند یا منسوخ هستند.

نحوه کار

این ابزار یک الگوریتم استنتاج نوع بازگشتی دست‌نویس با صفر کتابخانه خارجی استفاده می‌کند — JSON.parse برای اعتبارسنجی و تجزیه ورودی، سپس یک پیمایش سفارشی که هر مقدار در درخت JSON را می‌گردد و اعلان‌های TypeScript interface یا type را مستقیماً در مرورگر صادر می‌کند. چیزی به سروری ارسال نمی‌شود.

  1. 1
    JSON تجزیه و اعتبارسنجی شد
    ورودی شما به JSON.parse تحویل می‌شود. اگر شکست بخورد، خطای دقیق تجزیه فوراً زیر ورودی آشکار می‌شود. یک تجزیه موفق یک درخت مقدار تایپ‌شده تولید می‌کند که بقیه تبدیل را هدایت می‌کند.
  2. 2
    استنتاج نوع بازگشتی
    یک تابع بازگشتی getType هر گره را می‌گردد: نوع‌های اولیه به string، number، boolean، یا null نگاشت می‌شوند؛ اشیاء یک interface نام‌دار جدید فعال می‌کنند؛ آرایه‌های اشیاء کلیدهای خود را در همه عناصر ادغام می‌کنند پس کلیدهایی که فقط در برخی موارد حضور دارند اختیاری می‌شوند و نوع‌های مقدار متناقض با | متصل می‌شوند.
  3. 3
    نام‌گذاری interface ایمن-برخورد
    هر شیء تودرتو یک نام PascalCase از کلید JSON خود می‌گیرد (snake_case، kebab-case، و فاصله همه نرمال می‌شوند). اگر دو شیء ساختاری-متفاوت همان نام را داشته باشند، یک پسوند عددی اضافه می‌شود (Data، Data2، …) به‌جای بازنویسی خاموش تعریف قبلی.
  4. 4
    خروجی رندر و قابل‌دانلود
    interfaceهای تودرتو ابتدا صادر می‌شوند، سپس نوع ریشه، به‌صورت export interface یا export type بسته به انتخاب شما قالب‌بندی می‌شود. نتیجه می‌تواند در کلیپ‌بورد کپی یا به‌عنوان فایل .ts دانلود شود — همه با یک Blob استاندارد و بدون رفت‌وبرگشت سروری ساخته می‌شوند.

ابزارهای مرتبط

سؤالات متداول