typescript - 如何在 type-graphql 中为联合类型做一个字段解析器
问题描述
考虑以下
堆栈是 type-graphql / type-orm / postgres
我使用单表继承(STI) 和联合类型来表示多种提要类型。
一切都很好——直到我想添加一个字段解析器——我找不到让它工作的方法。
看起来您无法将接口类型传递给 @Resolver
一些代码片段来说明:
抽象的顶级实体
@InterfaceType()
@Entity({ orderBy: { createdAt: 'DESC' } })
@TableInheritance({ column: { type: 'varchar', name: 'type' } })
export abstract class FeedItem {
@Field(() => ID)
@PrimaryGeneratedColumn('uuid')
id: string
@Field()
@Column({ nullable: false })
type: string
@Field(() => Customer, { nullable: true })
@ManyToOne(
() => Customer,
customer => customer.feedItems,
{ onDelete: 'CASCADE' }
)
customer: Lazy<Customer>
@Field(() => [FeedItemComment])
@OneToMany(
() => FeedItemComment,
feedItemComment => feedItemComment.feedItem,
{ lazy: true }
)
comments: Lazy<FeedItemComment[]>
解析器
export const FeedResultUnion = createUnionType({
name: 'FeedItemResult', // the name of the GraphQL union
types: [AuthoredFeedItem, MilestoneFeedItem, TaskFeedItem, AssessmentFeedItem, WeeklySummaryFeedItem], // array of object types classes
@Resolver(() => FeedItem) // <---- this does not work, nor does FeedItemResult
export class FeedItemResolver {
// would love to do something like the following, but can't ...
@Authorized()
@FieldResolver(() => CommentsResponse)
async comments(@Root() feedItem: FeedItem) {
const [feedItems, count] = await getRepository(FeedItemComment).findAndCount({
where: {
feedItem,
},
order: { createdOn: 'DESC' },
})
return {
items: feedItems,
count,
}
}
}
})
任何人都可以指出我通往胜利的道路吗?!
解决方案
我也有问题,@FieldResolver()
我刚刚在 tsconfig.json 中进行了更改,我"target": "es5"
改为"target": "es6"
type-graphql 文档说您必须配置 tsconfig.json 才能使其工作
我希望我有帮助
推荐阅读
- javascript - 如何在 JS 中从没有元素名称的 json 文件中读取特定数据
- arrays - 如果元素的索引等于数组的元素值,则将 elemnet 交换到下一个元素
- php - 如何在 HTML / PHP 中使用 "?main="
- http - 用户不存在时的响应代码 - 404 还是 422?
- mongodb - 更新对象 mongodb 数组中的项目
- oracle - 如何在 Talend 中将 varchar 数据类型转换为 Cassandra Map(键值对)转换
- css - 如何在 RSCSS 中选择什么是组件和什么是元素?
- google-cloud-platform - GCP Notebook AI -- 具有写入权限的 SSH?
- java - 如何在android studio中显示一次性吐司消息
- javascript - 如何检查一个字符串是否仅包含数组项?