Preskočiť na obsah
100% lokálne

Protobuf schéma na typy TypeScript

Konvertujte Protobuf schému na zodpovedajúce TypeScript interfejsy, enumy a union typy.

Vstup
Výstup

Protobuf schéma na typy TypeScript

Vložte Protobuf schému a tento nástroj generuje zodpovedajúce typy TypeScript: jedno rozhranie na správu, jeden enum na Protobuf enum a typ union pre každý oneof. Používajte ho, keď .proto súbor definuje formát drôtu API a chcete typovo bezpečného klienta bez spustenia celého reťazca nástrojov protoc.

Vyberte proto2 alebo proto3 na ovládanie spôsobu čítania holých polí: proto3 implicitná prítomnosť udržiava singulárne skalárne a enum polia vždy prítomné, zatiaľ čo polia typizovaná správami zostávajú voliteľná; proto2 namiesto toho číta explicitné kľúčové slová required a optional na každom poli. 64-bitové celé čísla sa mapujú na reťazec predvolene, pretože čísla JavaScript strácajú presnosť vyššie ako 2^53 — vypnite možnosť pre number namiesto toho. Opakované polia sa stanú poľami a polia map<K, V> sa stanú Record<K, V>. Oneof sa buď zrúti do typu diskriminovanej union, takže iba jeden člen môže byť nastavený naraz, alebo sa roztiahne do bežných voliteľných polí. Vnorené typy si zachovávajú svoje vnorenie v generovaných názvoch (Outer_Inner), názvy polí môžu zostať v snake_case alebo sa previesť na camelCase, komentáre sa prenášajú ako JSDoc a zapnutie generovania služby pridáva jedno rozhranie na Protobuf službu s každým rpc typizovaným pre jednotné alebo streamovacie volania.

Konvertor je ručne napísaný analyzátor, nie obal okolo protoc: pokrýva bežný tvar schémy — správy, enumy, oneofs, mapy, vnorené typy a služby — zatiaľ čo preskakuje možnosti, rozšírenia a vyhradené príkazy polí, ktoré nepotrebuje na reprodukovanie typu. Chýbajúci bodočiarka alebo nezhodný zátvorník vytvárajú jasnu chybu pomenúvajúcu zhruba kde sa to stalo.

Všetko sa spúšťa lokálne vo vašom prehliadači; vaša schéma sa nikdy nenahrávajú, takže je bezpečné vložiť vlastnícke definície API. Skopírujte výsledok, stiahnite si ho ako .txt súbor alebo ho pošlite späť do vstupu, aby ste pokračovali v zdokonaľovaní schémy.

Časté otázky

Podporuje to proto2 aj proto3?
Áno. Vyberte možnosť syntaxe alebo ju ponechajte tak: schéma, ktorá začína riadkom syntax = "proto2"; alebo syntax = "proto3"; sa číta zo schémy samotnej a možnosť pôsobí iba ako fallback, keď tento riadok chýba.
Ako sa spracovávajú polia s 64-bitovým celým číslom?
int64, uint64, sint64, fixed64 a sfixed64 sa mapujú na reťazec predvolene, pretože čísla JavaScriptu nemôžu presne reprezentovať celý rozsah 64-bitov. Vypnite "64-bitové celé čísla ako reťazec", aby ste ich namapovali na number.
Čo sa stane so skupinou oneof?
Keď je "Reprezentovať oneof ako typ union" zapnutý, oneof sa stane diskriminovanou union typu TypeScript, takže iba jeden člen môže byť nastavený. Keď je vypnutý, každý člen sa stane vlastným voliteľným poľom.
Generuje typy pre gRPC služby?
Zapnite "Generovať typy metód služby" a pridajte jedno rozhranie TypeScript na službu, s každou metódou rpc typizovanou pre jednotné volanie alebo streamovanie s AsyncIterable, čo zodpovedá kľúčovým slovám stream schémy.
Nahrávajú sa niekde moje schémy?
Nie. Schéma sa analyzuje a konvertuje úplne vo vašom prehliadači — nič sa neposiela na server, takže je bezpečné vložiť internú alebo neobjavenej definíciu API.