Ich habe ein Modul mit einer Schnittstelle für ein Mungo-Schema, das wie folgt aussieht:Lassen Sie sich rechts ein, wenn Mongoose Modelle in Typoskript nisten Schnittstellen
// Interface
export interface User extends PassportDocument
{
person: ObjectId | Person
}
// Mongoose Schema
var schema = new PassportSchema({
person: { type: ObjectId, required: false, ref: 'Person' }
};
Mein Problem ist, dass, wenn ich bevölkern person
auf einem User
Dokument I verstehe nicht, wie man das Tippen richtig macht.
.then((user: User) => {
console.log(user.person._id); // Property '_id' does not exist on type 'ObjectId | Person'
}
Wie löse ich dies, damit ich immer noch Typen verwenden kann, ohne eine neue Schnittstelle zu erstellen?
Sie vergessen haben ein ':' nach dem params, es ist weniger als 6 Zeichen so: ‚Ich kann t es bearbeiten. Ansonsten funktioniert es wie ein Leckerbissen also danke! Jetzt muss ich nur herausfinden, warum Gulp mir einen Fehler gibt, obwohl alles funktioniert ... – Oskar
Mein Linter gibt mir keine Warnungen mehr, aber beim Kompilieren bekomme ich 'activities.ts (105,91): Fehler TS2339: Property '_id' existiert nicht beim Typ 'ObjectId | Person ". Alles funktioniert, wie auch in der Anwendung selbst, wenn es ausgeführt wird. Irgendwelche Ideen was ist passiert? – Oskar
@Oskar ah du hast Recht, danke. Ich habe den Code aktualisiert. Wie geht es mit Ihrem zweiten Kommentar weiter, wenn Sie im Codeblock der if-Anweisung darauf zugreifen? Es wird nur bestätigt, dass es sich um einen Personentyp handelt. Der Typ der Variablen außerhalb dieses Bereichs ändert sich nicht. – Paarth