typescript - 是否可以使用联合 @Field 创建 @ArgType
问题描述
我试图有一个可以是 aContactCreate
或ContactRead
. 但我不确定我正在做的事情是否可能。
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
是两个不同类型对象的联合?
解决方案
GraphQL 规范还不支持输入联合,所以你不能在@ArgsType
nor中使用它@InputType
。
您可以阅读 GitHub 上的 RFC 和讨论: https ://github.com/graphql/graphql-spec/issues/627
推荐阅读
- python - 像 PyLDAVIs 这样的绘图,用于可视化列之间的常用词
- asp.net-core - 在 .net 核心应用程序中加载标准库
- flutter - 如何在颤振模式表上放置一个 iOS 风格的可关闭栏
- javascript - 防止在每次点击时添加 DOM 元素
- flutter - 如何为 ListView.builder 加载数据以从提供者的数据构建
- c# - SSIS - 将重复列设置为空
- javascript - 如何以更优雅的方式验证这一点?
- visual-studio - 如何在发布到 Azure 之前运行 gulp 任务?
- azure - 启用从 Azure DevOps 到 keyvault 和 AllowAccessFrom only PrivateLink 的访问
- javascript - 找不到模块:错误:使用 Webpack 和 PixiJS 时无法解析“fs”