Перейти до вмісту
TextArray
100% локально

JSON до TypeScript

Створюйте інтерфейси TypeScript із документа JSON із вкладеними об’єктами як іменованими підінтерфейсами.

Введення
Вихід

JSON до TypeScript

Вставте документ JSON — відповідь API, файл конфігурації, рядок бази даних — і отримайте готові до використання оголошення TypeScript. Типи виводяться рекурсивно: примітиви відображаються на рядок, число та логічні значення, масиви передають свій тип елемента, а змішані масиви стають чистими об’єднаннями, наприклад (число | рядок)[]. Кожен вкладений об’єкт стає іменованим підінтерфейсом, отриманим з його ключа властивості в PascalCase, тому властивість «користувач» створює інтерфейс користувача, який можна імпортувати та посилатися будь-де.

Ідентичні форми виявляються та повторно використовують єдиний інтерфейс замість створення дублікатів; числовий суфікс з’являється лише тоді, коли два об’єкти мають спільну назву ключа, але відрізняються структурою. Порожні масиви виходять як unknown[], а порожні об’єкти як Record<string, unknown> — чесні заповнювачі, а не припущення. Назви властивостей, які не є дійсними ідентифікаторами, автоматично беруться в лапки, тому kebab-case та цифрові ключі зберігаються без змін.

Параметри охоплюють реальні стандарти проекту. Назвіть кореневий тип, виберіть між оголошеннями інтерфейсу та типу, експортуйте все або нічого, позначте всі властивості лише для читання та вирішіть, як обробляти нульові значення — як явний нульовий тип або як додаткові властивості. Недійсний JSON створює спокійну помилку з рядком і стовпцем проблеми, так само, як програма форматування JSON повідомляє про це.

Усе працює локально у вашому браузері: відповіді API з маркерами, записами користувачів або внутрішніми корисними навантаженнями ніколи не залишають вашу машину. Вставте, скопіюйте оголошення у свою кодову базу, і форма ваших даних буде введена.

FAQ

Як типізуються вкладені об’єкти та масиви?
Вкладені об’єкти стають іменованими підінтерфейсами, отриманими з їхнього ключа властивості в PascalCase. Масиви приймають свій тип елемента; коли елементи відрізняються, типом є об’єднання, наприклад (число | рядок)[]. Масив об’єктів однакової форми повторно використовує один інтерфейс для всіх елементів.
Що відбувається з двома предметами однакової форми?
Вони мають один інтерфейс — генератор порівнює структури та повторно використовує перше ім’я. Числовий суфікс, як-от Item2, з’являється лише тоді, коли дві властивості мають однаковий ключ, але справді різні форми.
Як обробляються нульові значення?
За замовчуванням нульова властивість вводиться як нульова, саме про це йдеться у прикладі. Увімкніть «Необов’язкові властивості для нульових значень», щоб натомість видати prop?: unknown — корисно, коли null означає «іноді відсутній» у вашому API.
Чому мій порожній масив введений як unknown[]?
Порожній масив не містить доказів свого типу елемента, тому unknown[] є чесною відповіддю. Додайте один репрезентативний елемент до вибірки, і генератор визначить реальний тип.
Чи завантажено кудись мій JSON?
Ні. Інструмент повністю працює у вашому браузері, і ваші дані ніколи не залишають ваш пристрій — це безпечно для відповідей API, які містять маркери або особисті дані.