Node.js 无法使用NodeJS中的Mongoose和Typescript扩展基类
我试图使用Mongoose4.5.4和NodeJS中的Typescript(显然),同时利用存储库模式 存储库:Node.js 无法使用NodeJS中的Mongoose和Typescript扩展基类,node.js,mongodb,typescript,mongoose,Node.js,Mongodb,Typescript,Mongoose,我试图使用Mongoose4.5.4和NodeJS中的Typescript(显然),同时利用存储库模式 存储库: export class RepositoryBase<T extends mongoose.Document> implements IRead<T>, IWrite<T> { private _model: mongoose.Model<mongoose.Document>; constructor(schemaM
export class RepositoryBase<T extends mongoose.Document> implements IRead<T>, IWrite<T> {
private _model: mongoose.Model<mongoose.Document>;
constructor(schemaModel: mongoose.Model<mongoose.Document>) {
this._model = schemaModel;
}
create(item: T): mongoose.Promise<mongoose.model<T>> {
return this._model.create(item);
}
//......
//Additional CRUD methods excluded for brevity
}
导出类RepositoryBase实现IRead、IWrite{
private_模型:mongoose.model;
构造函数(schemaModel:mongoose.Model){
这个._model=schemaModel;
}
创建(项目:T):猫鼬。承诺{
返回此。\u model.create(项目);
}
//......
//为简洁起见,排除了其他CRUD方法
}
用户存储库:
export class UserRepository extends RepositoryBase<IUserModel> {
constructor() {
super(UserSchema);
}
}
导出类UserRepository扩展了RepositoryBase{
构造函数(){
超级(用户模式);
}
}
从UserRepository
调用super()
时出现以下类型错误
[ts]
类型为“(名称:字符串)=>IModelConstructor&EventEmitter”的参数不能分配给类型为“IModelConstructor&EventEmitter”的参数。
类型“(名称:字符串)=>IModelConstructor&EventEmitter”不可分配给类型“IModelConstructor”。
类型“(名称:string)=>IModelConstructor&EventEmitter”中缺少属性“findById”。
导入用户模式
有人知道为什么吗?我创建的模型(UserSchema
)非常简单:
let model=mongooseConnection.model(“用户”,UserSchema.schema)代码>
我非常希望能朝着正确的方向推进。做一个简单的导出const model=mongooseConnection.model(“Users”,UserSchema.schema)
足以解决此键入问题。请参阅此处的两个解决方案:(免责声明:其中一个是我的)