node.js - Mongoose '.inlcudes' - Argument av typen 'ObjectId' kan inte tilldelas parametern av typen '{ type: ObjectId; required: true; }'
Jag håller på att konvertera min JS node/express & mongoose-server till Typescript, och jag har ett problem med mongoose:s array includes-metod i Typescript:
Argument of type 'ObjectId' is not assignable to parameter of type '{ type: ObjectId; required: true; }'.
Type 'ObjectId' is missing the following properties from type '{ type: ObjectId; required: true; }': type, required
78 if (!building.actors.includes(mongoose.Types.ObjectId(userID)))
Raden som orsakar detta problem är nedan:
const transformedUserID = mongoose.Types.ObjectId(userID)
if (transformedUserID && !building.actors.includes(transformedUserID)) {
...
Felet säger att den erforderliga egenskapen saknas, så jag tänkte att det kanske var ett problem som involverade att userID eventuellt är null, så jag försökte detta utan framgång:
transformedUserID || mongoose.Types.ObjectId()
Jag är ny på Typescript så jag är inte riktigt säker på varför detta händer, det fungerade helt felfritt i vanlig JS. All hjälp skulle uppskattas.
Tack
Svar #1
Räknade ut vad problemet var - jag använde mongoose.Schema.Types.ObjectId i mitt TypeScript-gränssnitt för Buildings-modellen, istället för mongoose.Types.ObjectId.