What is the correct way of typing .toObject() return?
const userDoc = await UsersModel.findOne({email})
const user:IUserObject = userDoc.toObject()
The user is not IUserObject. Its typing doesn't make sense: Pick<Pick<_LeanDocument<IUserModel>, "_id"....
Here is my model typing:
import {Schema, model, Document} from 'mongoose'
export interface IUser {
email: string
password: string
}
export interface IUserObject extends IUser {
_id: string
}
export interface IUserModel extends Document, IUser {}
const schema = new Schema({
email: { type: String, required: true },
password: { type: String, required: true }
})
export const UsersModel = model<IUserModel>('Users', schema)