Schema GraphQL la tipuri TypeScript
Convertiți un schema GraphQL în tipuri, interfețe și enumerări TypeScript echivalente.
Schema GraphQL la tipuri TypeScript
Lipiți un document GraphQL SDL (schema definition language) — declarațiile de tip, intrare, interfață și enumerare care descriu o API GraphQL — și acest instrument generează tipurile TypeScript corespunzătoare. Echipele de backend care construiesc un server GraphQL, sau echipele de frontend care o consumă fără instrumente de codegen instalate, obțin forme tipizate pentru fiecare obiect, intrare și interfață din schema într-o singură trecere, fără a configura un pas de build doar pentru a vedea cum arată tipurile.
Maperul scalar urmează specificația GraphQL implicit: ID și String devin string, Int și Float devin number, Boolean rămâne boolean, iar orice scalar personalizat — DateTime, JSON, Upload — revine la un tip configurable pe care îl alegeți. Câmpurile anulabile pot fi redate ca proprietate opțională (field?: Type) sau ca uniune explicită cu null (field: Type | null), iar aceeași alegere de formă se aplică la declarații întregi: alegeți aliasuri de tip TypeScript sau interfețe, cu implements devenind extends când sunt selectate interfețe. Enumerările generează fie o uniune de string-literal, fie o enumerare TypeScript reală. Un prefix sau sufix de nume evită coliziunile de nume generate cu cele scrise manual, comentariile și blocurile de descriere din schema se transportă ca JSDoc, iar tipurile al căror nume începe cu underscore — tipurile de introspectare ale GraphQL — sunt omise implicit.
Argumentele de câmp și directivele sunt eliminate automat, deoarece tipurile TypeScript descriu forma mai degrabă decât resolveri: "field(id: ID!): User @deprecated" devine un câmp simplu. Tipurile de listă imbricate, cum ar fi [String!]!, mențin nulabilitatea inițială și externă independentă, deci o listă care nu permite null cu șiruri anulabile și o listă anulabilă de șiruri care nu permit null ies diferit. Declarațiile pot fi, de asemenea, sortate alfabetic în loc să urmeze ordinea originală din schema.
Totul rulează local în browserul dvs. — schema pe care o lipiți nu este niciodată încărcată oriunde. Copiați tipurile generate, descărcați-le ca fișier .txt, sau trimiteți ieșirea direct înapoi la intrare pentru a continua rafinarea schemei.