Protobuf-schema till TypeScript-typer
Konvertera ett Protobuf-schema till motsvarande TypeScript-gränssnitt, uppräkningar och union-typer.
Protobuf-schema till TypeScript-typer
Klistra in ett Protobuf-schema så genererar det här verktyget motsvarande TypeScript-typer: ett gränssnitt per meddelande, en uppräkning per Protobuf-uppräkning och en union-typ för varje oneof. Använd det när en .proto-fil definierar en API:s trådformat och du vill ha en typesäker klient utan att köra den fullständiga protoc-verktygslådan.
Välj proto2 eller proto3 för att styra hur nakna fält läses: proto3 med implicit närvaro håller enkla skalar- och enum-fält alltid närvarande medan meddelande-ifyllda fält förblir valfria; proto2 läser istället de explicita obligatoriska och valfria nyckelorden på varje fält. 64-bitars heltal mappas till sträng som standard, eftersom JavaScript-tal förlorar noggrannhet över 2^53 – slå av alternativet för att mappas till tal istället. Upprepade fält blir matriser och map<K, V>-fält blir Record<K, V>. En oneof kollapsas antingen till en diskriminerad union-typ så att endast en medlem kan ställas in, eller plattas ut till vanliga valfria fält. Kapslade typer behåller sin kapslande i de genererade namnen (Outer_Inner), fältnamnen kan förbli snake_case eller konverteras till camelCase, kommentarer överförs som JSDoc, och aktivering av tjänstgenerering lägger till ett gränssnitt per Protobuf-tjänst med varje rpc skriven för unär eller strömmande samtal.
Konverteraren är en handskriven parser, inte en omslutning runt protoc: den täcker den dagliga formen av ett schema – meddelanden, uppräkningar, oneofs, kartor, kapslade typer och tjänster – medan den hoppar över alternativ, tillägg och reserverade fältdeklarationer som den inte behöver för att återge en typ. Ett saknat semikolon eller en omatchad parentes producerar ett tydligt fel som namnger ungefär var det hände.
Allt körs lokalt i din webbläsare; ditt schema laddas aldrig upp, så det är säkert att klistra in egna API-definitioner. Kopiera resultatet, ladda ned det som en .txt-fil, eller skicka det tillbaka till inmatningen för att fortsätta förfina schemat.