node.js - 此表达式不可构造。类型“xxxx”没有构造签名
问题描述
我有一个错误,我无法理解我做错了什么。我正在按照https://docs.nestjs.com/techniques/mongodb中的说明进行操作。不同之处在于我创建了接口来构建实现服务的不同策略(为此我在 Model 中制作了一个包装器)。
import { Inject, Injectable } from "@nestjs/common";
import { Model } from "mongoose";
import { Documents } from "src/domain/schemas/documents.schema";
interface IDocumentRepository {
save();
}
interface IDocumentRepositoryFactory {
new(doc?: any): IDocumentRepository;
}
export function createIDocumentRepository(ctor: IDocumentRepositoryFactory, doc?: any): IDocumentRepository {
return new ctor(doc);
}
@Injectable()
export class DocumentRepository implements IDocumentRepository {
constructor(
private doc?: Documents,
@Inject()
private repository?: Model<Documents>
) {}
/* others fields and methods */
save() {
this.doc.save()
}
}
在其他代码点中,我调用:
someMethod(repository: DocumentRepository) {
/* others codes */
const mdoc = new this.repository(mongoModelDoc); // <<<<---- error
mdoc.save();
/* others codes */
}
它导致以下错误:
This expression is not constructable. Type 'DocumentRepository' has no construct signatures.
return new this.repository(document)
出了什么问题以及如何解决以满足此实施?
解决方案
推荐阅读
- python - 如何在按下按钮时构建 MDDropdownMenu 及其项目?
- node.js - 节点:无法抓取公共画面仪表板?
- fortran - 与串行和附加并行运行相比,并行仿真在一些时间步长后给出不同的结果
- c++ - 在程序中编写脚本来编写和编译代码
- postgresql - 导入大文件 txt Postgres
- java - 使用 Postconstruct 方法在应用程序范围类中注入请求范围 bean 时上下文非活动异常
- amazon-web-services - 我可以通过 Amazon Cognito 创建临时用户吗?
- javascript - 异步函数返回未定义
- r - 变量取新值时的 ID 测量
- c++ - 在二叉搜索树中查找最大和最小元素