Я создаю свою пользовательскую схему и получаю следующую ошибку при попытке присвоить значение полю 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"
};
export type RegistrationStatus = keyof typeof RegistrationStatuses;
export type RegistrationStatus = keyof typeof RegistrationStatuses;
@pre<User>("save", function(next: HookNextFunction) {
// Update registration timestamps
if (this.isModified("registrationStatus")) {
if (!this.registrationStatusTimeStamps) {
this.registrationStatusTimeStamps[this.registrationStatus] = new Date();
} else {
this.registrationStatusTimeStamps[this.registrationStatus] = new Date();
}
}
return next();
})
export class User extends Typegoose {
@prop({
default: {},
_id: false,
})
public registrationStatusTimeStamps: { [k in RegistrationStatuses]?: Date };