首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeGraphQl,如何避免定义重复

TypeGraphQl,如何避免定义重复
EN

Stack Overflow用户
提问于 2021-06-18 05:51:07
回答 1查看 219关注 0票数 1

假设我有一些类型

代码语言:javascript
复制
@ObjectType({ description: "The some other object X ..." })
export class ObjectX{
  @Field(()=> ID)
  id: string;

  @Field() 
  @Property() 
  fieldX1: typeX1;

  ... 

  @Field() 
  @Property() 
  fieldXn: typeXn; 
}

现在我不想写类似.

代码语言:javascript
复制
@InputType() 
export class CreateObjectX {
  @Field() 
  @Property() 
  fieldX1: typeX1;

  ... 

  @Field() 
  @Property() 
  fieldXn: typeXn; 
}

@InputType() 
export class UpdateObjectX {
  @Field(()=> ID)
  id: string;
  
  @Field({nullable:true}) 
  @Property() 
  fieldX1: typeX1;

  ... 

  @Field({nullable:true}) 
  @Property() 
  fieldXn: typeXn; 
}

相反,我想要一个函数,它接受与"ObjectX“类似的任何ObjectX,并返回2派生InputTypes。

  • 第一个"CreateObjectX“省略了"id",但扩展了”ObjectX“中定义的所有其他字段、属性和验证。

  • 第二个"UpdateObjectX“需要"id”,并将"ObjectX“中定义的所有其他字段、属性和验证扩展为可选。

所以我得到了以下的schema.gql ..。

代码语言:javascript
复制
type ObjectX { 
  id: ID! 
  x1: typeX1! 
  ...:
  xn: typeXn!
}

input CreateObjectX {
  // id: ID!  id would be omitted. 
  x1: typeX1! 
  ... 
  xn: typeXn! 
} 

input UpdateObjectX { 
  id: ID! 
  x1?: typeX1 // would be nullable
  ... 
  xn?: typeXn // would be nullable
} 

我该怎么做?

EN

回答 1

Stack Overflow用户

发布于 2021-07-01 08:36:10

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68029972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档