To use Node.js Mongoose with TypeScript, we can create interfaces that extends interfaces provided by Mongoose.
For instance, we write
export interface IUser extends mongoose.Document {
  name: string;
  somethingElse?: number;
}
export const UserSchema = new mongoose.Schema({
  name: { type: String, required: true },
  somethingElse: Number,
});
const User = mongoose.model<IUser>("User", UserSchema);
export default User;
to create the IUser interface that extends the mongoose.Document interface.
And then we use it to create our model with  mongoose.model<IUser>.
Therefore, the User has the name and the optional somethingElse properties.
Conclusion
To use Node.js Mongoose with TypeScript, we can create interfaces that extends interfaces provided by Mongoose.
