Mongoose принимает класс ES6 в качестве основы для схемы.
Пример по этой ссылке:
class PersonClass {
get fullName() {
return `${this.firstName} ${this.lastName}`; // compiler error
}
}
PersonSchema.loadClass(PersonClass);
Свойства схемы не определены вкласс, поэтому компилятор TypeScript говорит:
Свойство firstName не существует для типа PersonClass.
Хак - использовать фиктивный конструктор:
constructor(readonly firstName: string, readonly lastName: string) { }
Тем не менее, это хак, и его сложнее поддерживать.
Есть ли другой способ сделать это без хаков?