我有一个带有Mongoose模式接口的模块,如下所示:
// Interface
export interface User extends PassportDocument
{
person: ObjectId | Person
}
// Mongoose Schema
var schema = new PassportSchema({
person: { type: ObjectId, required: false, ref: 'Person' }
};
我的问题是,当我在person
文档上填充User
时,我不明白如何正确输入内容。
.then((user: User) => {
console.log(user.person._id); // Property '_id' does not exist on type 'ObjectId | Person'
}
如何解决这个问题,以便我可以在不创建新界面的情况下使用类型?
答案 0 :(得分:1)
假设person接口是包含_id属性的接口,
function isPerson(potentialPerson:any) : potentialPerson is Person {
// person-checking logic.
}
.then((user: User) => {
if(isPerson(user.person)) {
console.log(user.person._id); // should work now, user.person is understood to be of type 'Person'
}
}