From cb45fbf3492ad2c7124bff3e32328de3db189957 Mon Sep 17 00:00:00 2001 From: Catwallon Date: Wed, 15 Oct 2025 15:28:02 +0100 Subject: [PATCH 1/3] types(models): default _id type to ObjectId for Document --- test/types/middleware.test.ts | 8 ++++++-- types/document.d.ts | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/test/types/middleware.test.ts b/test/types/middleware.test.ts index 8f8f1f03392..76e5356894e 100644 --- a/test/types/middleware.test.ts +++ b/test/types/middleware.test.ts @@ -192,11 +192,15 @@ function gh11257() { } function gh13601() { - const testSchema = new Schema({ + interface ITest extends Document { + name?: string; + } + + const testSchema = new Schema({ name: String }); - testSchema.pre('deleteOne', { document: true }, function() { + testSchema.pre('deleteOne', { document: true }, function(this: ITest) { expectAssignable(this); }); } diff --git a/types/document.d.ts b/types/document.d.ts index 8e5f5824a44..95c56dc8d03 100644 --- a/types/document.d.ts +++ b/types/document.d.ts @@ -18,7 +18,7 @@ declare module 'mongoose' { * * TQueryHelpers - Object with any helpers that should be mixed into the Query type * * DocType - the type of the actual Document created */ - class Document, TSchemaOptions = {}> { + class Document, TSchemaOptions = {}> { constructor(doc?: any); /** This documents _id. */ From 4518f030fc19708601654b8a74e57cf52a945dfe Mon Sep 17 00:00:00 2001 From: Valeri Karpov Date: Fri, 14 Nov 2025 11:02:44 -0500 Subject: [PATCH 2/3] Update Document type to use Types.ObjectId --- types/document.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/document.d.ts b/types/document.d.ts index 95c56dc8d03..927e7ad03c4 100644 --- a/types/document.d.ts +++ b/types/document.d.ts @@ -18,7 +18,7 @@ declare module 'mongoose' { * * TQueryHelpers - Object with any helpers that should be mixed into the Query type * * DocType - the type of the actual Document created */ - class Document, TSchemaOptions = {}> { + class Document, TSchemaOptions = {}> { constructor(doc?: any); /** This documents _id. */ From c43fae1654f7b54abaddb6791ecc025a01ca74c2 Mon Sep 17 00:00:00 2001 From: Valeri Karpov Date: Fri, 14 Nov 2025 11:03:48 -0500 Subject: [PATCH 3/3] Refactor testSchema to remove interface ITest --- test/types/middleware.test.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/test/types/middleware.test.ts b/test/types/middleware.test.ts index 76e5356894e..8f8f1f03392 100644 --- a/test/types/middleware.test.ts +++ b/test/types/middleware.test.ts @@ -192,15 +192,11 @@ function gh11257() { } function gh13601() { - interface ITest extends Document { - name?: string; - } - - const testSchema = new Schema({ + const testSchema = new Schema({ name: String }); - testSchema.pre('deleteOne', { document: true }, function(this: ITest) { + testSchema.pre('deleteOne', { document: true }, function() { expectAssignable(this); }); }