@typegoose/typegoose": "^7.2.0"
有什么方法可以使用 typecirpt 和 typegoose 的通用 CRUD 存储库?特别是,如何使该方法getModelForClass()
与泛型一起使用?从问题 246借来的类似于此代码的内容。
如果是这样,我错过了什么?
import { prop, getModelForClass } from '@typegoose/typegoose';
import { AnyParamConstructor, ReturnModelType } from '@typegoose/typegoose/lib/types';
export class GenericCRUDService<T, U extends AnyParamConstructor<T> = AnyParamConstructor<T>> {
dataModel: ReturnModelType<U, T>;
constructor(cls: U) {
this.dataModel = getModelForClass<T, U>(cls);
}
public create(data: T) {
this.dataModel.create(data);
}
}
export class Cat {
@prop()
public age: number;
@prop()
public color: string;
}
export class Dog {
@prop()
public isBarking: boolean;
@prop()
public race: string;
}