首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打字本打字鹅getModelForClass返回类型

打字本打字鹅getModelForClass返回类型
EN

Stack Overflow用户
提问于 2021-10-05 03:50:11
回答 1查看 623关注 0票数 0

使用typegoose/mongoose,我可以获得这样一个类的模型(其中Clip是一些将保存到db的类)

代码语言:javascript
复制
import { getModelForClass } from '@typegoose/typegoose';
...

const ClipModel = getModelForClass(Clip);

这个模型是可构造的,我的意思是我可以这样做;

代码语言:javascript
复制
const clip = new ClipModel()
const clip = new ClipModel({someProp: "someValue"})

问题

  1. 这怎么可能。如果我在这里查看getModelForClass的返回类型,它是ReturnModelType<U, QueryHelpers>,那么一个类型怎么能有一个构造函数呢?难道这不等于做;
代码语言:javascript
复制
const clip = new ReturnModelType<Clip, QueryHelpers>(); // Ts error: 'ReturnModelType' only refers to a type, but is being used as a value here.
  1. 如果可以构造ClipModel,这是否意味着ClipModel是一个类?如果是的话,应该可以这样做吗?
代码语言:javascript
复制
class MyCustomModel extends ClipModel {
 // Add some customisations 
}

但是,这会导致ts错误Base constructors must all have the same return type.

  1. 是否可以对ClipModel进行扩展,使其具有一些自定义函数,以便可以像这样进行调用;
代码语言:javascript
复制
ClipModel.find({}) // the default created find method 
ClipModel.myCustomFind({}) // find method with custom stuff

谢谢,

EN

回答 1

Stack Overflow用户

发布于 2021-10-05 13:40:02

是否可以对ClipModel进行扩展,使其具有一些自定义函数,以便可以像这样进行调用;

你要搜索的是静态方法

如果可以构造ClipModel,这是否意味着ClipModel是一个类?如果是的话,应该可以这样做吗?

ClipModel (运行时从getModelForClass返回的内容)是mongoose.Model的一个实例,而在JS中,实例不能从

这怎么可能。如果我看一下getModelForClass的返回类型,这里是ReturnModelType,那么一个类型怎么能有一个构造函数呢?难道这不等于做;

您可以在有关ReturnModelType的文档中阅读更多内容。

此外,您的示例很奇怪,不能在运行时使用类型,正确的是:

代码语言:javascript
复制
type TCustomModel = ReturnModelType<typeof Class>;
// and if you have QueryHelpers for the Class
type TCustomModel = ReturnModelType<typeof Class, ClassQueryHelpers>

// and then later
const CustomModel: TCustomModel = getModelForClass(Class);
// or (pseudo code, may need more more types in ".model<>")
const CustomModel: TCustomModel = mongoose.model('Name', schema);

阅读有关QueryHelpers@queryMethod中的更多信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69444715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档