From f0f7e753822e1a0992f818cbc4eefee1931250f7 Mon Sep 17 00:00:00 2001 From: Valeri Karpov Date: Mon, 4 Dec 2023 17:00:12 -0500 Subject: [PATCH] types: make findOneAndDelete() without options return result doc, not ModifyResult Fix #14130 --- test/types/models.test.ts | 9 +++++++++ types/models.d.ts | 6 +++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/test/types/models.test.ts b/test/types/models.test.ts index ff473840f1c..077e3c07b5d 100644 --- a/test/types/models.test.ts +++ b/test/types/models.test.ts @@ -853,3 +853,12 @@ async function gh14003() { await TestModel.validate({ name: 'foo' }, ['name']); await TestModel.validate({ name: 'foo' }, { pathsToSkip: ['name'] }); } + +async function gh14114() { + const schema = new mongoose.Schema({ name: String }); + const Test = mongoose.model('Test', schema); + + expectType | null>( + await Test.findOneAndDelete({ name: 'foo' }) + ); +} diff --git a/types/models.d.ts b/types/models.d.ts index 45f67138b46..d139ad944cc 100644 --- a/types/models.d.ts +++ b/types/models.d.ts @@ -608,11 +608,11 @@ declare module 'mongoose' { 'findOneAndDelete' >; findOneAndDelete( - filter?: FilterQuery, - options?: QueryOptions & { includeResultMetadata: true } + filter: FilterQuery, + options: QueryOptions & { includeResultMetadata: true } ): QueryWithHelpers, ResultDoc, TQueryHelpers, TRawDocType, 'findOneAndDelete'>; findOneAndDelete( - filter?: FilterQuery, + filter?: FilterQuery | null, options?: QueryOptions | null ): QueryWithHelpers;