Тип поля даты в Graphql должен быть типом вывода, но получено: undefined

У меня есть сервер graphql, работающий с узлом /expres и ES6, я пытаюсь перейти на машинопись, когда я хочу создать схему graphql, у меня возникают некоторые проблемы с типами дат. Я знаю, что graphql не содержит нативный тип даты, но в моей реализации ES6 я использовал graphql-date, чтобы устранить это ограничение.

import {
    GraphQLObjectType,
    GraphQLSchema,
    GraphQLID,
} from 'graphql';

import GraphQLDate from 'graphql-date';

const events = new GraphQLObjectType({
    name: 'events',
    description: 'This represent an Event',
    fields: () => {
        return {
            id: {
                type: GraphQLID,
                resolve(event) {
                    return event.id;
                }
            },
            start: {
                type: GraphQLDate,
                resolve(event) {
                    return event.start;
                }
            }
        };
    }
});

проблема в том, что в моем проекте с машинописью при запуске сервера я получаю это сообщение:

Error: events.start field type must be Output Type but got: undefined.

1 ответ

Проблема здесь в том, что в TypeScript import Foo from 'foo' ожидает, что модуль 'foo' экспортирует module.exports.default имущество. graphql-date модуль вместо этого делает классический шаблон перезаписи Node.js module.exports,

Для поддержки этого в TypeScript вы можете смешать старый и новый синтаксис с помощью:

import GraphQLDate = require('graphql-date');
Другие вопросы по тегам