У меня есть модель мангуста с интерфейсом объявляющий его как таковой:Сокращение интерфейса в машинописном
export interface IUserDocument extends mongoose.Document {
surname: string;
lastName: string;
}
export interface IUserModel extends mongoose.Model<IUserDocument> {
myStaticMethodGoesHere(signature: string): void;
}
и соответствующей мангуста схемы:
const UserSchema = new mongoose.Schema({
surname: {type: String, required: true},
lastname: {type: String, required: true},
})
Теперь я должен определить, как мой Пользователь структурированный в 2 раза (схема интерфейса мангуста и машинописный интерфейс), которая не является СУХОЙ и неудобной. К сожалению, если я хочу использовать lean
метод мангуст, я должен определить еще другой интерфейс:
export interface ILeanUserDocument {
_id: mongoose.Types.ObjectId;
__v: number;
surname: string;
lastName: string;
}
Это неудобно и к ошибкам. Есть ли способ для моего скудного интерфейса расширить (я не знаю, глагол, чтобы использовать здесь) мой интерфейс IUserDocument, но удалить из него вещи?