Protobuf-schema naar TypeScript-types
Zet een Protobuf-schema om in overeenkomstige TypeScript-interfaces, enums en union-types.
Protobuf-schema naar TypeScript-types
Plak een Protobuf-schema in, en dit hulpmiddel genereert de overeenkomstige TypeScript-typen: één interface per bericht, één enum per Protobuf-enum en een union-type voor elke oneof. Gebruik het wanneer een .proto-bestand de draadindeling van een API definieert en u een typeveilige client wilt zonder de volledige protoc-toolchain uit te voeren.
Kies proto2 of proto3 om te bepalen hoe lege velden worden gelezen: proto3 met impliciete aanwezigheid houdt enkele scalaire en enum-velden altijd aanwezig terwijl berichtgefundeerde velden optioneel blijven; proto2 leest in plaats daarvan het expliciete vereiste en optioneel sleutelwoord op elk veld. 64-bits gehele getallen worden standaard aan string gekoppeld, omdat JavaScript-nummers hun nauwkeurigheid boven 2^53 verliezen – zet de optie uit om in plaats daarvan aan getal toe te wijzen. Herhaalde velden worden arrays en map<K, V>-velden worden Record<K, V>. Een oneof vouwt zich ofwel in een onderscheiden union-type, zodat slechts één lid kan worden ingesteld, of wordt afgevlakt tot gewone optionele velden. Geneste typen behouden hun nesting in de gegenereerde namen (Outer_Inner), veldnamen kunnen snake_case blijven of worden geconverteerd naar camelCase, opmerkingen worden als JSDoc overgedragen, en het activeren van servicegeneratie voegt één interface per Protobuf-service toe met elke rpc getypt voor unaire of streaming-aanroepen.
De converter is een handgeschreven parser, geen wrapper rond protoc: het behandelt de alledaagse vorm van een schema – berichten, enums, oneofs, maps, geneste typen en services – terwijl het opties, uitbreidingen en gereserveerde veldverklaringen overslaat die niet nodig zijn om een type te reproduceren. Een ontbrekend puntkomma of een niet-overeenkomend haakje produceert een duidelijke fout die aangeeft waar dit is gebeurd.
Alles wordt lokaal in uw browser uitgevoerd; uw schema wordt nooit geüpload, dus het is veilig om eigendomsdefinities van API's in te plakken. Kopieer het resultaat, download het als .txt-bestand, of stuur het terug naar de invoer om het schema verder aan te scherpen.