Przejdź do treści
TextArray
100% lokalnie

JSON na TypeScript

Wygeneruj interfejsy TypeScript z dokumentu JSON — zagnieżdżone obiekty jako nazwane podinterfejsy.

Wejście
Wynik

JSON na TypeScript

Wklej dokument JSON — odpowiedź API, plik konfiguracyjny, wiersz z bazy danych — i odbierz gotowe deklaracje TypeScript. Typy są wnioskowane rekurencyjnie: prymitywy mapują się na string, number i boolean, tablice niosą typ swoich elementów, a tablice mieszane stają się czystymi uniami jak (number | string)[]. Każdy zagnieżdżony obiekt staje się nazwanym podinterfejsem wyprowadzonym z klucza właściwości w PascalCase — właściwość „user" tworzy więc interfejs User, który możesz importować i używać wszędzie.

Identyczne struktury są wykrywane i współdzielą jeden interfejs zamiast generowania duplikatów; przyrostek liczbowy pojawia się tylko wtedy, gdy dwa obiekty mają tę samą nazwę klucza, ale różnią się budową. Puste tablice wychodzą jako unknown[], a puste obiekty jako Record<string, unknown> — uczciwe typy zastępcze zamiast zgadywania. Nazwy właściwości, które nie są prawidłowymi identyfikatorami, są automatycznie ujmowane w cudzysłowy, więc klucze z myślnikami i klucze liczbowe przechodzą bez szwanku.

Opcje pokrywają prawdziwe konwencje projektowe. Nazwij typ główny, wybierz między deklaracjami interface i type, eksportuj wszystko albo nic, oznacz właściwości jako readonly i zdecyduj, jak traktować wartości null — jako jawny typ null czy jako właściwości opcjonalne. Nieprawidłowy JSON daje spokojny komunikat błędu z wierszem i kolumną problemu, tak samo jak formater JSON.

Wszystko działa lokalnie w twojej przeglądarce: odpowiedzi API z tokenami, dane użytkowników czy wewnętrzne payloady nigdy nie opuszczają twojego komputera. Wklej dane, skopiuj deklaracje do projektu — i kształt twoich danych jest otypowany.

Częste pytania

Jak typowane są zagnieżdżone obiekty i tablice?
Zagnieżdżone obiekty stają się nazwanymi podinterfejsami wyprowadzonymi z klucza właściwości w PascalCase. Tablice przejmują typ swoich elementów; gdy elementy się różnią, powstaje unia jak (number | string)[]. Tablica obiektów o tej samej budowie współdzieli jeden interfejs dla wszystkich elementów.
Co się dzieje z dwoma obiektami o tej samej budowie?
Współdzielą jeden interfejs — generator porównuje struktury i ponownie używa pierwszej nazwy. Przyrostek liczbowy jak Item2 pojawia się tylko wtedy, gdy dwie właściwości mają ten sam klucz, ale naprawdę różne struktury.
Jak obsługiwane są wartości null?
Domyślnie właściwość o wartości null jest typowana jako null — dokładnie to, co mówi próbka. Włącz „Opcjonalne właściwości dla wartości null", a powstanie prop?: unknown — przydatne, gdy null w twoim API znaczy „czasem nieobecne".
Dlaczego pusta tablica jest typowana jako unknown[]?
Pusta tablica nie niesie żadnego dowodu na typ swoich elementów, więc unknown[] to uczciwa odpowiedź. Dodaj do próbki jeden reprezentatywny element, a generator wywnioskuje prawdziwy typ.
Czy mój JSON jest gdzieś wysyłany?
Nie. Narzędzie działa wyłącznie w twojej przeglądarce, a dane nigdy nie opuszczają twojego urządzenia — bezpiecznie nawet dla odpowiedzi API z tokenami czy danymi osobowymi.