可以通过以下类型定义看到异常。
UnhandledPromiseRejectionWarning:错误:未定义类型错误。确保您为“CommentsView”的“行”提供显式类型
@ObjectType()
export class CommentsView {
@Field({ nullable: true })
count: number;
@Field({ nullable: true })
rows: Comment[];
}
因此,在字段上定义了类型,如下所示,但它引发了新的错误
(节点:14964)UnhandledPromiseRejectionWarning:错误:架构必须包含唯一命名的类型,但包含多个名为“Comment”的类型。
@ObjectType()
export class CommentsView {
@Field({ nullable: true })
count: number;
@Field(() => [Comment])
rows: Comment[];
}
您很可能同时使用
Comment
类作为输入和对象类型,这在 GraphQL 中不受支持。
一种解决方案是提供不同的输入类型名称:
@ObjectType()
@InputType("CommentInput")
export class Comment {
...
}
另一个方法是为输入和对象类型提供不同的子类:
@ObjectType({ isAbstract: true })
@InputType({ isAbstract: true })
export class Comment {
...
}
@ObjectType()
export class CommentObject extends Comment {}
@InputType()
export class CommentInput extends Comment {}
@ObjectType()
export class CommentsView {
...
@Field(CommentObject, { nullable: true })
rows: CommentObject[];
}
// somewhere else where you used the Comment class as an input
...
@InputType()
export class CommentUserInput {
@Field(() => CommentInput)
comment: CommentInput;
}
@ObjectType()
export class CommentsView {
@Field(() => Int, { nullable: true })
count: number;
@Field(() =>[Comment], { nullable: true })
rows: Comment[];
}
试试这个