Typescript Typegoose和NestJS:Property';保存';类型上不存在

Typescript Typegoose和NestJS:Property';保存';类型上不存在,typescript,mongoose,nestjs,typegoose,Typescript,Mongoose,Nestjs,Typegoose,我正在为我的后端服务器使用typegoose和nestjs。我在pages.service.ts文件中已经有了一个函数,可以按ID获取一个名为getPageById()的页面。当我试图从pages.services.ts文件中的另一个调用此函数时,我通过typescript得到以下错误: Property 'save' does not exist on type 'page' 我的page.model.ts文件如下所示 从“@typegoose/typegoose”导入{DocumentTy

我正在为我的后端服务器使用typegoose和nestjs。我在
pages.service.ts
文件中已经有了一个函数,可以按ID获取一个名为
getPageById()
的页面。当我试图从
pages.services.ts
文件中的另一个调用此函数时,我通过typescript得到以下错误:

Property 'save' does not exist on type 'page'
我的
page.model.ts
文件如下所示

从“@typegoose/typegoose”导入{DocumentType,modelpoptions,prop,Severity};
从“/models/Content.model”导入{Content};
@模型选项({
方案选项:{
时间戳:对,
toJSON:{
转换:(doc:DocumentType,ret)=>{
删除第五节;
ret.id=ret.\u id;
删除检索id;
}
}
},
选项:{
allowMixed:Severity.ALLOW
}
})
导出类页面{
@prop({required:true})
标题:字符串;
@prop({required:true})
描述:字符串;
@prop({required:true})
内容:内容;
@支柱(
createdAt?:日期;
@支柱(
更新日期:日期;
@支柱(
类别:字符串;
}
我的
pages.service.ts
文件如下所示

从'@nestjs/common'导入{Injectable,NotFoundException};
从'@typegoose/typegoose'导入{ReturnModelType};
从“nestjs typegoose”导入{InjectModel};
从“./dto/create page.dto”导入{createPageDto};
从“./Page.entity”导入{Page};
@可注射()
导出类页面服务{
建造师(
@模型(第页)
专用只读页面模型:ReturnModelType
) {}
异步getPageById(id:string):承诺{
让页面;
试一试{
page=等待这个.pageModel.findById(id);
}捕获(错误){
抛出new NotFoundException(`Page找不到`);
}
如果(!第页){
抛出新的NotFoundException(`Page not bet found`);
}
返回页面;
}
async updatePageCategory(id:string,category:string):承诺{
const page=wait this.getPageById(id);
page.category=类别;
page.save()//我在这里得到了错误
返回页面;
}
}
我需要什么才能让它工作

更新

我可以修复这个错误。我将返回类型更改为如下所示的
Promise

异步getPageById(id:string):承诺{ 让页面; 试一试{ page=等待这个.pageModel.findById(id); }捕获(错误){ 抛出new NotFoundException(`Page找不到`); } 如果(!第页){ 抛出新的NotFoundException(`Page not bet found`); } 返回页面; }
但是这是解决这个问题的最好办法吗?

是的,看起来这是解决这个问题的最好办法。我曾考虑使用
mongoose.Document
扩展模型类,但这会导致不同类型的问题。除此之外,您还可以像我那样在模型中声明类型
export-type-PagelDocument=DocumentType并在需要的地方使用。是的,这似乎是解决问题的最佳方法。我曾考虑使用
mongoose.Document
扩展模型类,但这会导致不同类型的问题。除此之外,您还可以像我那样在模型中声明类型
export-type-PagelDocument=DocumentType并在需要时使用它。