是否可以用联合@Field创建@ArgType

时间:2019-12-13 03:28:09

标签: typescript graphql union nestjs type-graphql

我正在尝试使用输入/ argtype,它可以是ContactCreateContactRead。但是我不确定我在做什么是否有可能。

import { ContactCreate } from 'contact/ContactCreate'
import { ContactRead } from 'contact/ContactRead'
import { ArgsType, createUnionType, Field } from 'type-graphql'

const ContactObtainUnion = createUnionType({
  name: 'ContactObtain',
  types: () => [ContactCreate, ContactRead],
  resolveType: value => {
    if ('uuid' in value) {
      return ContactRead
    }
    return ContactCreate
  }
})

@ArgsType()
export class ContactObtain {
  @Field(() => ContactObtainUnion)
  contact: typeof ContactObtainUnion
}

是否可能有一个@Field,它是两个不同类型对象的并集?

1 个答案:

答案 0 :(得分:1)

GraphQL规范尚不支持输入并集,因此您不能在@ArgsType@InputType中使用它。

您可以阅读RFC和GitHub上的讨论: https://github.com/graphql/graphql-spec/issues/627