【发布时间】:2016-09-13 04:16:30
【问题描述】:
我有一个猫鼬模型,其接口声明如下:
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 次(猫鼬模式和打字稿接口),这不是 DRY 并且不方便。不幸的是,如果我想使用 mongoose 的 lean 方法,我必须再定义一个接口:
export interface ILeanUserDocument {
_id: mongoose.Types.ObjectId;
__v: number;
surname: string;
lastName: string;
}
这很不方便并且容易出错。有没有办法让我的精益界面扩展(我不知道这里使用的动词)我的 IUserDocument 界面但从中删除东西?
【问题讨论】:
标签: typescript mongoose