Programista

JSON na TypeScript

Zamień obiekt JSON na typowane interfejsy TypeScript.

  • Natychmiast
  • Za darmo
  • Prywatnie (przetwarzane lokalnie)
  • Bez rejestracji

Interfejsy TypeScript

Otypować odpowiedź API w kilka sekund

Zamiast ręcznie pisać interfejsy dużego JSON-a, wklej go tutaj. Narzędzie wnioskuje typy rekurencyjnie: zagnieżdżone obiekty zamienione na osobne interfejsy, typowane tablice, pola opcjonalne oznaczone „?”.

  1. Wklej JSON

    Odpowiedź API, plik konfiguracyjny, dowolny obiekt.

  2. Nazwij główny

    Domyślnie „Root” lub nazwa wedle uznania.

  3. Skopiuj interfejsy

    Gotowe do wklejenia do pliku .ts.

Przykład wnioskowania

Wartość JSONWywnioskowany typ
"name": "Ada"name: string
"age": 36age: number
"roles": ["admin"]roles: string[]
"profile": { … }profile: Profile
(klucza brak w jednym obiekcie tablicy)pole?: typ

Wnioskowanie z jednego przykładu: pamiętaj, by dopracować null-e (często w union string | null) i sprawdzić typy później. Wszystko dzieje się lokalnie, Twój JSON nie opuszcza przeglądarki.

Najczęstsze pytania

Jak wnioskowane są typy?

Narzędzie bada każdą wartość: liczba staje się number, łańcuch string, wartość logiczna boolean. Obiekty stają się interfejsami nazwanymi po ich kluczu, a tablice są typowane według elementów (string[], MójTyp[]…).

Jak wykrywane są pola opcjonalne?

Gdy tablica zawiera wiele obiektów, narzędzie scala ich klucze. Klucz obecny w niektórych obiektach, ale nie we wszystkich, jest oznaczany jako opcjonalny przez „?”. To dokładnie oczekiwane zachowanie dla niejednorodnych danych API.

Co dzieje się z wartościami null lub pustymi tablicami?

Wartość null jest typowana jako null (do ręcznego dopracowania, często w union jak string | null). Pusta tablica staje się unknown[], bo typu elementu nie da się ustalić z jednego przykładu.

Czy wynik jest gotowy do wklejenia do mojego kodu?

Tak: interfejs główny ma nazwę według Twojego wyboru (domyślnie „Root”), podinterfejsy są zadeklarowane powyżej, a składnia to poprawny TypeScript. Zmień nazwy interfejsów na pasujące do domeny dla przejrzystości.