Přeskočit na obsah
100% lokálně

Protobuf schéma na typy TypeScript

Převeďte protobuf schéma na odpovídající TypeScript rozhraní, výčty a union typy.

Vstup
Výstup

Protobuf schéma na typy TypeScript

Vložte protobuf schéma a tento nástroj vygeneruje odpovídající typy TypeScript: jedno rozhraní na zprávu, jeden výčet na protobuf výčet a union typ pro každý oneof. Používejte jej, když soubor .proto definuje formát telegrafie API a chcete bezpečně zadaného klienta bez spuštění celého řetězce nástrojů protoc.

Zvolte proto2 nebo proto3 pro kontrolu způsobu čtení holých polí: proto3 implicitní přítomnost udržuje singulární skalární a výčetová pole vždy přítomná, zatímco pole typizovaná zprávami zůstávají volitelná; proto2 místo toho čte explicitní klíčová slova required a optional na každém poli. 64bitová celá čísla se mapují na řetězec ve výchozím nastavení, protože čísla JavaScriptu ztrácí přesnost nad 2^53 — vypněte možnost pro number místo toho. Opakovaná pole se stanou poli a pole map<K, V> se stanou Record<K, V>. Oneof se buď zhroutí do typu diskriminované unie, takže pouze jeden člen může být nastaven najednou, nebo se rozbalí na běžná volitelná pole. Vnořené typy si zachovávají své vnoření v generovaných názvech (Outer_Inner), názvy polí mohou zůstat v snake_case nebo se převést na camelCase, komentáře se přenášejí jako JSDoc a zapnutí generování služby přidá jedno rozhraní na službu Protobuf s každou rpc zadanou pro jednosměrné nebo streamované volání.

Konvertor je ručně psaný analyzátor, ne obal kolem protoc: pokrývá každodenní tvar schémy — zprávy, výčty, oneofs, mapy, vnořené typy a služby — zatímco přeskakuje možnosti, rozšíření a vyhrazené příkazy polí, které nepotřebuje k reprodukci typu. Chybějící středník nebo neodpovídající závorka vytváří jasnou chybu pojmenováním zhruba kde se to stalo.

Všechno běží lokálně ve vašem prohlížeči; vaše schéma se nikdy nenahrává, takže je bezpečné vkládat vlastnické definice API. Zkopírujte výsledek, stáhněte jej jako soubor .txt nebo jej pošlete zpět do vstupu, aby ste pokračovali v zdokonalování schémy.

Časté dotazy

Podporuje to proto2 i proto3?
Ano. Zvolte možnost syntaxe nebo ji nechte tak: schéma, která začíná řádkem syntax = "proto2"; nebo syntax = "proto3"; se čte ze samotného schématu a možnost funguje pouze jako fallback, když chybí tento řádek.
Jak se zpracovávají 64bitová celočíselná pole?
int64, uint64, sint64, fixed64 a sfixed64 se mapují na řetězec ve výchozím nastavení, protože čísla JavaScriptu nemohou přesně reprezentovat úplný rozsah 64bitů. Vypněte "64bitová celá čísla jako text" a namapujte je na number místo toho.
Co se stane se skupinou oneof?
Pokud je "Vyjádřit oneof jako union typ" zapnutý, oneof se stane diskriminovaným union typem TypeScript, takže pouze jeden člen může být nastaven. Když je vypnutý, každý člen se stane vlastním volitelným polem.
Generuje typy pro služby gRPC?
Zapněte "Generovat typy metod služby" a přidejte jedno rozhraní TypeScript na službu, přičemž každá metoda rpc je zadána pro jednosměrné volání nebo streamování s AsyncIterable, odpovídající klíčovým slovům stream schématu.
Jsou moje schémy nahrány někam?
Ne. Schéma se analyzuje a konvertuje zcela ve vašem prohlížeči — nic se neposílá na server, takže je bezpečné vkládat interní nebo neuveřejněnou definici API.