无法在NodeJS中使用Mongoose和Typescript扩展基类

我正在尝试使用Mongoose 4.5.4, 它在使用Typescript(显然)的NodeJS中使用Repository模式进行打样。

RepositoryBase:

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 } 

UserRepository:

 export class UserRepository extends RepositoryBase<IUserModel> { constructor() { super(UserSchema); } } 

我从UserRepository调用super()UserRepository以下types的错误

[ts] Argument of type '<U>(name: string) => IModelConstructor<U> & EventEmitter' is not assignable to parameter of type 'IModelConstructor<Document> & EventEmitter'. Type '<U>(name: string) => IModelConstructor<U> & EventEmitter' is not assignable to type 'IModelConstructor<Document>'. Property 'findById' is missing in type '<U>(name: string) => IModelConstructor<U> & EventEmitter'. import UserSchema

有谁知道为什么? 我创build我的模型( UserSchema )非常简单: let model = mongooseConnection.model<IUserModel>("Users", UserSchema.schema);

我非常感谢朝着正确的方向前进。

做一个简单的export const model = mongooseConnection.model<IUserModel>("Users", UserSchema.schema); 足以解决这个打字问题。