node.js - Manière recommandée de partager des types entre le frontend et nodejs graphql
J'ai commencé à utiliser TypeScript avec GraphQL sur Node.js. Mais une chose qui me frappe est l'utilisation de gql de apollo-server-express. Existe-t-il un moyen d'utiliser les types utilisés dans le schéma GraphQL ailleurs ?
import { gql } from 'apollo-server-express';
export const userSchema = gql`
type User {
id: String!
name: String
}
type Query {
getUsers: [User]
}
`;
Maintenant, je ne veux pas créer une interface séparée pour User. Et j'aimerais qu'une interface comme suit soit facilement disponible :
export const usersResolver = {
Query: {
getUsers: () => db.get(condition).then(result => {
const users:Array<User> = [];
}
}
};
De plus, j'aimerais également utiliser ces types sur le frontend.
Comment cela peut-il être fait.
Réponse n°1
Vous devriez utiliser quelque chose comme GraphQL Code Generator pour générer automatiquement les types pour vous en fonction de votre schéma et de vos requêtes.