Graphql日期字段类型必须是输出类型,但得到:undefined

时间:2017-03-23 20:41:18

标签: node.js express graphql postgraphql

我有一个运行node / expres和ES6的graphql服务器,我正在尝试迁移到typescript,当我想做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;
                }
            }
        };
    }
});

问题在于,在运行服务器时使用typescript的项目中,我收到了以下消息:

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

1 个答案:

答案 0 :(得分:1)

这里的问题是,在TypeScript import Foo from 'foo'期望模块' foo'导出module.exports.default属性。相反,graphql-date模块执行覆盖module.exports的经典Node.js模式。

要在TypeScript中支持此功能,您可以通过以下方式混合使用旧语法和新语法:

import GraphQLDate = require('graphql-date');