Node.js Typegoose枚举arrayProp返回错误:类型不是构造函数

Node.js Typegoose枚举arrayProp返回错误:类型不是构造函数,node.js,typescript,typegoose,Node.js,Typescript,Typegoose,我的数组模式的定义有问题。所以基本上,我想要实现的是一个单用户模型,它有一个名为games的属性,可以容纳用户正在玩的一系列游戏。问题是我已经将游戏定义为enum: module Constants { export enum Games { LOL = 'League Of Legends', } } 导出{常数} 现在,当我尝试将其附加到模式模型时,如下所示: @arrayProp({ required: true, items: Constants.Gam

我的数组模式的定义有问题。所以基本上,我想要实现的是一个单用户模型,它有一个名为games的属性,可以容纳用户正在玩的一系列游戏。问题是我已经将游戏定义为enum:

module Constants {
    export enum Games {
        LOL = 'League Of Legends',
    }
}
导出{常数}

现在,当我尝试将其附加到模式模型时,如下所示:

@arrayProp({ required: true, items: Constants.Games })
games: Constants.Games[];
我收到一个错误(在成功编译之后,服务器启动之前)

^const instance=new Type();
类型错误:类型不是构造函数
在baseProp(C:\Users\Borys\Desktop\lft\backend\node\u modules\typegoose\lib\prop.js:114:22)
在C:\Users\Borys\Desktop\lft\backend\node\u modules\typegoose\lib\prop.js:177:9
在DecorateProperty(C:\Users\Borys\Desktop\lft\backend\node\u modules\reflect metadata\reflect.js:553:33)
在Object.decoration(C:\Users\Borys\Desktop\lft\backend\node\u modules\reflect metadata\reflect.js:123:24)
在(C:\Users\Borys\Desktop\lft\backend\build\dataModel\User.js:4:92)
反对。(C:\Users\Borys\Desktop\lft\backend\build\dataModel\User.js:64:1)
我已经读了一些关于这个错误的内容,但是它与items/itemsRef的required选项有关。如果我尝试删除required,使用enum,使用偶数itemsRef,并与不同的文档集有关,但这些都不适用于我

有人能帮忙/联系吗

@arrayProp({ required: true, items: String })
games: Constants.Games[];
这是解决这个问题的办法


如果有人能澄清并告诉我为什么我不应该在items属性中使用enum,我将不胜感激。

问题是,您不能将enum用作运行时mongoose类型,因此我建议使用

@prop({ required: true, type: String, enum: Constants.Games })
games: Constants.Games[];
  • type
    用于设置类型(即
    string
    )(此选项可以省略-由于反射)
  • enum
    用于设置要验证的枚举

谢谢你,我相信没有人比你更了解正确答案。:)我会记下这一点。
@prop({ required: true, type: String, enum: Constants.Games })
games: Constants.Games[];