2

我一直在尝试在 typegoose 中对枚举数组进行建模,如下所示,但一直出现编译错误。

export enum USER_ROLES {
    ADMIN = 'admin',
    SUBSCRIBER = 'subs',
    NONE = 'none',
}


export class User {
    @prop({ type: () => [String], enum: USER_ROLES, default: [USER_ROLES.SUBSCRIBER] })
    roles?: USER_ROLES[];
}

export const UserModel = getModelForClass(User, {
    schemaOptions: {
        collection: 'users',
        timestamps: {
            createdAt: 'createdAt',
            updatedAt: 'createdAt',
        },
    }
});

我得到的错误信息是:

错误:“User.roles”的类型无效!类型为:“function String() { [native code] }” [E009]

请问我该如何正确操作?

4

1 回答 1

2

我今天早上早些时候遇到了类似的问题,正确的方法如下:

export class User {
    @prop({ type: String, enum: USER_ROLES, default: [USER_ROLES.SUBSCRIBER] })
    roles?: USER_ROLES[];
}

type告诉数组将持有的对象的类型。在这种情况下,它String的值可以是 、 或 中的一个adminsubs多个none

于 2021-03-18T11:18:48.993 回答