Тип поля даты в 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');