在type-graphql中传递打字稿类型问题

时间:2020-06-18 08:55:11

标签: typescript mongoose graphql typegraphql typegoose

我是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)

如何解决此错误?

您是否有计划在数据库中实施我的商店处于活动状态的持续时间?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

很简单,您已经定义了一个type,它仅在打字稿编译时存在,而在运行时不存在

对于typegoose,您仍然需要手动设置数组类型,对于您而言(在7.2.0上),这将是prop选项{ type: Number, dim: 2 }

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