Převodník JSON na TypeScript
Vložte odpověď API a získejte hotová rozhraní TypeScript nebo aliasy typů, s odvozenými vnořenými typy, volitelnými poli a uniemi s null.
Běží v prohlížečiBez registraceNic se neodesílá
Jak používat: JSON na TypeScript
- Vložte ukázkový JSON, například odpověď API, do levého pole nebo otevřete soubor
.json. - Nastavte název kořenového typu (například
UserneboApiResponse). - Zvolte deklarace
interfacenebotypea přepínejteexport,readonlynebo všechna pole volitelná. - Zvolte
unknown(bezpečnější) neboanypro hodnoty, které ukázka neodhalí, například prázdná pole a null. - Zkopírujte vygenerovaný kód nebo ho stáhněte jako soubor
.ts.
Jak se typy odvozují
- Primitivní typy: řetězce, čísla a logické hodnoty se mapují na
string,numberaboolean. - Vnořené objekty se stanou vlastními pojmenovanými rozhraními v PascalCase, takže z
billing_addressvznikneBillingAddress. - Pole objektů se sloučí do jednoho typu položky pojmenovaného v jednotném čísle:
usersdáUser[]. Klíč, který v některých položkách chybí, se stane volitelným (key?:). - Hodnoty null se spojí s ostatními hodnotami viděnými u daného klíče:
string | null. Klíč, který je vždy jennull, dostaneunknownneboany. - Smíšená pole se stanou poli unií, například
(number | string)[]. - Shodné tvary se deklarují jednou a použijí znovu a různé tvary, které by měly stejný název, dostanou číselnou příponu.
- Klíče, které nejsou platnými identifikátory, například
"first-name"nebo"2fa", se dají do uvozovek.
interface vs. type
Pro obyčejné tvary objektů jsou oba téměř zaměnitelné. Deklarace interface lze rozšiřovat a slučovat a dávají o něco srozumitelnější chyby kompilátoru. Aliasy type umí vyjádřit i unie a mapované typy. Mnoho týmů používá rozhraní pro modely API a typy pro vše ostatní; zvolte to, co očekává váš kód nebo linter (@typescript-eslint/consistent-type-definitions).
Lepší typy z lepší ukázky
Typy mohou být jen tak úplné jako ukázka. Vložte odpověď, která obsahuje volitelná pole, nebo pole s několika různými položkami, aby generátor mohl rozpoznat volitelné a nullable klíče. Hodnoty jako data a výčty přicházejí v JSON jako obyčejné řetězce; zužte je pak ručně, například status: 'active' | 'disabled'. Pro validaci za běhu spojte vygenerované typy s knihovnou schémat, například Zod.
Časté dotazy
Odesílá se můj JSON?
Jak se rozpoznají volitelné vlastnosti?
?. U jediného objektu je každý klíč povinný, pokud nezaškrtnete Vše volitelné.Mám použít <code>unknown</code>, nebo <code>any</code>?
unknown je bezpečnější: TypeScript vás donutí hodnotu před použitím zúžit. any pro danou hodnotu kontrolu typů vypne. Použijte ho jen, pokud plánujete typy později upřesnit.Proč má datum ISO typ <code>string</code>?
new Date(), změňte ve svém modelu typ vlastnosti na Date.