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.

Relaterade artiklar