【发布时间】:2021-11-25 09:27:34
【问题描述】:
使用typegoose/mongoose 我可以获得这样的类的模型(其中Clip 是一些将保存到数据库的类)
import { getModelForClass } from '@typegoose/typegoose';
...
const ClipModel = getModelForClass(Clip);
而且这个模型是可构造的,我的意思是我可以做到这一点;
const clip = new ClipModel()
const clip = new ClipModel({someProp: "someValue"})
问题
- 这怎么可能。如果我查看
getModelForClass的返回类型,这里是ReturnModelType<U, QueryHelpers>,那么类型怎么会有构造函数呢?这和做不一样吗?
const clip = new ReturnModelType<Clip, QueryHelpers>(); // Ts error: 'ReturnModelType' only refers to a type, but is being used as a value here.
- 如果可以构造 ClipModel 是否意味着 ClipModel 是一个类?如果可以的话,应该可以这样做吗?
class MyCustomModel extends ClipModel {
// Add some customisations
}
但是,这会产生 ts 错误 Base constructors must all have the same return type.
- 是否可以扩展 ClipModel 以在其上添加一些自定义函数,以便可以像这样调用它;
ClipModel.find({}) // the default created find method
ClipModel.myCustomFind({}) // find method with custom stuff
谢谢,
【问题讨论】:
标签: typescript mongodb mongoose typegoose