首页 > 解决方案 > 是否可以使用联合 @Field 创建 @ArgType

问题描述

我试图有一个可以是 aContactCreateContactRead. 但我不确定我正在做的事情是否可能。

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是两个不同类型对象的联合?

标签: typescriptgraphqlunionnestjstypegraphql

解决方案


GraphQL 规范还不支持输入联合,所以你不能在@ArgsTypenor中使用它@InputType

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


推荐阅读