Typescript graphql js将字段定义与类型分开
我有一个关于GraphQLJS模式定义的问题。我有以下三种类型,在两种类型中有相同的字段:Typescript graphql js将字段定义与类型分开,typescript,types,schema,definition,graphql-js,Typescript,Types,Schema,Definition,Graphql Js,我有一个关于GraphQLJS模式定义的问题。我有以下三种类型,在两种类型中有相同的字段: const aType: GraphQLObjectType = new GraphQLObjectType({ name: 'aType', description: 'A type', fields: () => ({ fieldA: { type: baseType, description: 'The location of the
const aType: GraphQLObjectType = new GraphQLObjectType({
name: 'aType',
description: 'A type',
fields: () => ({
fieldA: {
type: baseType,
description:
'The location of the order.',
resolve: (root, { }) => "dummy resolve"
}
})
});
const bType: GraphQLObjectType = new GraphQLObjectType({
name: 'bType',
description: 'B type',
fields: () => ({
fieldA: {
type: baseType,
description:
'The location of the order.',
resolve: (root, { }) => "dummy resolve"
}
})
});
const baseType: GraphQLObjectType = new GraphQLObjectType({
name: 'baseType',
description: 'Base type',
fields: () => ({
dummy: {
type: GraphQLString,
resolve: (root, { }) => "Hi"
}
})
});
是否可以在aType和bType中定义相同的字段,然后在类型中使用该定义
像这样:
const fieldDefinition = {
type: baseType,
description:
'The location of the order.',
resolve: (root, { }) => "dummy resolve"
}
const aType: GraphQLObjectType = new GraphQLObjectType({
name: 'aType',
description: 'A type',
fields: () => ({
fieldA: fieldDefinition
})
});
const bType: GraphQLObjectType = new GraphQLObjectType({
name: 'bType',
description: 'B type',
fields: () => ({
fieldA: fieldDefinition
})
});
我认为这应该是可能的,但我对必须分配fieldDefinition的typescript类型有问题。
界面不是选项,因为对象之间的重叠太小
干杯,
Christian我想你根本不必给它指定类型。只要形状是一致的,我认为它就行了?它抱怨方法声明中的'root'参数。如果我没有显式地为fieldDefinition指定类型,那么看起来还可以。如果我给出任何类型的根,它都可以工作,但我认为这不是正确的方法。