我正在创建我的用户架构,但在尝试为registrationStatusTimeStamps
函数上的字段分配值时出现以下错误,@pre<save>
并ts
一直说是of type never
.
我已经尝试了一切,但我一直在抱怨 TS 并且该字段没有保存。我想我想要的输出显然是在一个对象中保存字段的时间
我错过了什么?
error TS2322: Type 'Date' is not assignable to type 'never'
所需的存储输出
{
registrationStatusTimeStamps: {
initial: 2018-10-18 14:29:07.000,
personalDetails: 2018-10-18 14:29:07.000,
selectBroker: 2018-10-18 14:29:07.000,
appropriatenessQuestionnaire: 2018-10-18 14:29:07.000,
documentCheck: 2018-10-18 14:29:07.000,
completed: 2018-10-18 14:29:07.000
}
}
编码
export enum RegistrationStatuses {
initial = "initial",
personalDetails = "personalDetails",
selectBroker = "selectBroker",
appropriatenessQuestionnaire = "appropriatenessQuestionnaire",
documentCheck = "documentCheck",
completed = "completed"
};
@pre<User>("save", function (next: HookNextFunction) {
// Update registration timestamps
if (this.isModified("registrationStatus")) {
this.registrationStatusTimeStamps[this.registrationStatus] = new Date();
}
return next();
})
export class User extends Typegoose {
@prop({
required: true,
default: RegistrationStatuses.initial
})
public registrationStatus: RegistrationStatuses;
@prop({
default: {},
_id: false,
})
public registrationStatusTimeStamps: { [k in RegistrationStatuses]?: Date };
}