在 type-graphql 中传递 typescript type 问题

Posted

技术标签:

【中文标题】在 type-graphql 中传递 typescript type 问题【英文标题】:Pass typescript type Problem in type-graphql 【发布时间】:2020-10-08 06:47:05 【问题描述】:

我是 GraphQL 新手,我不知道如何将 TypeScript type 传递给 ReturnTypeFunction@Field 装饰器。

我的代码如下:

export type WorokingHours = [number, number];

// [ [ 8, 13 ], [ 16, 22 ] ]
@Field(() => [WorokingHours], 
   nullable: true,
   description: storeWorkingHours
)
@prop()
workingHours?: WorokingHours[];

我会收到这个错误信息:

'WorokingHours' only refers to a type, but is being used as a value here.ts(2693)

如何解决这个错误?

您是否有任何想法来实现我的商店在我的数据库中处于活动状态的持续时间?

【问题讨论】:

【参考方案1】:

GraphQL 规范不支持元组,因此您需要使用列表[Number] 或显式对象类型 one: number, two: number

【讨论】:

【参考方案2】:

很简单,你定义了一个type,它只存在于typescript的编译时,而不是运行时

对于 typegoose,无论如何您都需要手动设置数组类型,对于您的情况(在 7.2.0 上),它将是 prop 选项 type: Number, dim: 2

对于 GraphQL,我猜应该是 () => [[Number]]

【讨论】:

以上是关于在 type-graphql 中传递 typescript type 问题的主要内容,如果未能解决你的问题,请参考以下文章

Graphql type-graphql如何传递一个对象数组突变

如何在 type-graphql 中触发订阅?

如何在 type-graphql 中使用带整数的 simple-json

对 Type-graphql 和 Typeorm 实体中的外键字段使用 ID 标量类型在语义上是不是正确?

type-Graphql 中的嵌套查询和变异

Type-GraphQL 上 JSON 字段的类型