node.js - Modalitatea recomandată de a partaja tipuri între frontend și graphql nodejs


Am început să folosesc TypeScript cu GraphQL pe Node.js. Dar un lucru care mă frapează este utilizarea gql din apollo-server-express. Există vreun mod în care pot folosi tipurile folosite în schema GraphQL și în altă parte.

import { gql } from 'apollo-server-express';

export const userSchema = gql`
  type User {
    id: String!
    name: String
  }

  type Query {
    getUsers: [User]
  }
`;

Acum nu vreau să creez o interfață separată pentru User. Și aș dori ca o interfață ca următoarea să fie disponibilă imediat:

export const usersResolver = {
  Query: {
    getUsers: () => db.get(condition).then(result => {
      const users:Array<User> = [];
    }
  }
};

De asemenea, aș dori să folosesc aceste tipuri și pe frontend.

Cum se poate face acest lucru.

Răspuns #1

Ar trebui să folosești ceva de genul GraphQL Code Generator pentru a genera automat tipurile pentru tine pe baza schemei și interogărilor tale.