[英]Typescript interface on mongoose populate
所以我有如下这个猫鼬模型:
const userSchema: mongoose.Schema = new mongoose.Schema(
{
_id: String,
email: {
type: String,
required: true,
},
firstName: String,
lastName: String,
phoneNumber: String,
cmt: {
type: String,
ref: 'Cmt',
},
},
);
如您所见,cmt 字段指向另一个名为Cmt
的模型,我将使用其详细信息populate
现在在另一个实例中,我需要传入 cmt id 以将其与userSchema
链接
但那时我会收到打字稿错误"Type 'string' is not assignable to type 'ICmt'."
ICmt
是 Cmt 的接口定义。
下面给出了userschema接口。
export interface IUser {
_id: string;
email: string;
firstName: string;
lastName: string;
phoneNumber: string;
cmt: ICmt;
createdAt?: Date;
updatedAt?: Date;
}
如何在不混淆填充查询和创建查询的情况下修复此错误?
这是一个简单的解决方案,但我错了。
你可以使用|
(or)
界面上的声明,这将解决可能出现的tslint错误的问题
所以我的用户界面将变成
export interface IUser {
_id: string;
email: string;
firstName: string;
lastName: string;
phoneNumber: string;
cmt: ICmt | string;
createdAt?: Date;
updatedAt?: Date;
}
所以不会再有任何我需要担心的 tslint 错误或 tsignore
以下将起作用,但需要对任何一种情况进行类型检查。
export interface User { // Issue when using I in declarations v.6++
cmt: Cmt | mongoose.Types.ObjectID;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.