Prerequisites
Mongoose version
8.4.4
Node.js version
20.10.0
MongoDB server version
6.0.2
Typescript version (if applicable)
5.4.5
Description
Reproduction link: https://stackblitz.com/edit/stackblitz-starters-9hjjfm?file=src%2Findex.ts
TypeScript should not allow me to assign the result of await UserModel.findOne().lean(); to the variable let user: UserInstance | null = null; in fact, the user.set or user.save instruction results in an error.
let user: UserInstance | null = null;
if (condition) {
user = await UserModel.findOne().lean(); // Here it should report an error
if (user) {
user.set({
name: 'John Doe',
});
await user.save();
}
}
The code below


results in an error when executed:

Steps to Reproduce
- Declare a variable of type
InstanceType<Model<MyModel>>;
- Assign the result of
await MyModel.findOne().lean();
- Call
.set({ ... }) or .save() function of the variabile.
Expected Behavior
TypeScript should not allow the code to compile