扩展类型似乎并不添加其所有属性和功能

时间:2019-01-31 16:16:19

标签: typescript inheritance mongoose schema

我正在用我自己的新类Document扩展猫鼬ThreadDoc类。我正在向班级添加其他字段,但是想保留Document的字段,这就是我要扩展它的原因。当我尝试创建猫鼬模式对象时,我的通用错误出现了:

  

类型ThreadDoc不满足约束Document。 ThreadDoc缺少以下属性

,然后继续列出诸如incrementmodelisDeleted之类的东西。当我查看Model的约束时,它将寻找{{1 }},所以我不明白问题是什么。

我尝试通过尝试创建一个接口来切换创建类的方式,这对我来说是行不通的,因为我稍后需要在测试中实例化此类型,并使用新字段扩展接口,但是无法消除错误。

T extends Document

我在// This is my current attempt at the class export class ThreadDoc extends Document{ threadTitle: String; threadBody: String; points: Number; bounty: Decimal128; createdBy: String; createdOn: Date; lastModifiedBy: String; lastModifiedOn: Date; constructor( threadTitle: String, threadBody: String, points: Number, bounty: Decimal128, createdBy: String, createdOn: Date, lastModifiedBy: String, lastModifiedOn: Date ) { super(); this.threadTitle = threadTitle; this.threadBody = threadBody; this.points = points; this.bounty = bounty; this.createdBy = createdBy; this.createdOn = createdOn; this.lastModifiedBy = lastModifiedBy; this.lastModifiedOn = lastModifiedOn; } } // then I call it like this export const Thread: Model<ThreadDoc> = model<ThreadDoc>( "Thread", ThreadSchema ); 的两个引用上都收到错误。这使我感到困惑,因为如果我扩展ThreadDoc并不一定继承Document的属性和功能?猫鼬为什么不认识这一点?从最初的错误中,我认为它仅采用Document作为泛型类型。但这不是真的,它需要扩展Document的所有内容。那么为什么这段代码不起作用?

0 个答案:

没有答案