Repository Patternを利用している間、TypoScriptでNodeJSにMongoose 4.5.4とit's typingsを使用しようとしています。NodeJSのMongooseとTypescriptで基底クラスを拡張できません
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
[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
からsuper()
への呼び出しに、次のタイプのエラーを持っている誰もがなぜ知っていますか?私のモデル(UserSchema
)の私の作成は非常に簡単です: let model = mongooseConnection.model<IUserModel>("Users", UserSchema.schema);
は、私は非常に正しい方向にプッシュをいただければ幸いです。
ここに2つの解決策があります:https://stackoverflow.com/questions/34482136/mongoose-the-typescriptway(免責事項:いずれかが私のものです) –