Акысыз JSON-TypeScript конверттегич

Каалаган JSON объектисинен же массивинен TypeScript интерфейстерин же тип псевдонимдерин жаратыңыз. 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;
}

Бул кантип иштейт

Бул курал нөл тышкы китепкана менен кол менен жазылган рекурсивдик тип чыгаруу алгоритмин колдонот — киргизүүнү текшерүү жана талдоо үчүн JSON.parse, андан кийин JSON даракттагы ар бир маанини басып өтүп браузерде түз TypeScript интерфейс же тип декларацияларын чыгарган ыңгайлаштырылган басып өтүү. Эч нерсе серверге жиберилбейт.

  1. 1
    JSON талданды жана текшерилди
    Киргизүүңүз JSON.parse'ke берилет. Эгер ишке ашпаса, так талдоо катасы дароо киргизүүнүн астында пайда болот. Ийгиликтүү талдоо айландыруунун калгандарын айдаган терилген маани дарагын берет.
  2. 2
    Рекурсивдик тип чыгаруу
    Рекурсивдик getType функциясы ар бир түйүндү басып өтөт: примитивдер сабга, санга, логикалыкка же нөлгө картага түшөт; объекттер жаңы аталган интерфейсти иштетет; объекттердин массивдеринин ачкычтары бардык элементтерге бириктирилет, ошондуктан кээ бир элементтерде гана бар ачкычтар милдеттүү эмес болуп, каршы келген маани түрлөрү | менен бириктирилет.
  3. 3
    Каршылашуу-коопсуз интерфейс аталыштоо
    Ар бир уялашкан объект анын JSON ачкычынан алынган PascalCase атын алат (snake_case, kebab-case жана боштуктардын баары нормалдаштырылат). Эгер эки структуралык жактан ар кандай объект бирдей атты бөлүшсө, мурунку декларацияны унчукпай алмаштыруунун ордуна, сандык суффикс кошулат (Data, Data2, …).
  4. 4
    Чыгуу тартылат жана жүктөп алса болот
    Уялашкан интерфейстер адегенде чыгарылат, андан кийин тандооңузга жараша export interface же export type катары форматталган тамыр тип. Натыйжаны алмашуу буферине көчүрсө же .ts файлы катары жүктөсө болот — баары стандарттуу Blob менен курулган, серверге кайрылуусуз.

Байланыштуу куралдар

Көп берилүүчү суроолор