JSON na TypeScript
Zamień obiekt JSON na typowane interfejsy TypeScript.
- Natychmiast
- Za darmo
- Prywatnie (przetwarzane lokalnie)
- Bez rejestracji
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 „?”.
-
Wklej JSON
Odpowiedź API, plik konfiguracyjny, dowolny obiekt.
-
Nazwij główny
Domyślnie „Root” lub nazwa wedle uznania.
-
Skopiuj interfejsy
Gotowe do wklejenia do pliku .ts.
Przykład wnioskowania
| Wartość JSON | Wywnioskowany typ |
|---|---|
| "name": "Ada" | name: string |
| "age": 36 | age: 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.