diff --git a/test/types/models.test.ts b/test/types/models.test.ts index 2e46de6eb76..26134f77fd4 100644 --- a/test/types/models.test.ts +++ b/test/types/models.test.ts @@ -854,6 +854,15 @@ async function gh14003() { 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' }) + ); +} + async function gh13999() { class RepositoryBase { protected model: mongoose.Model; @@ -867,5 +876,4 @@ async function gh13999() { return elems; } } - } diff --git a/types/models.d.ts b/types/models.d.ts index 2df347c9843..5a438b61d57 100644 --- a/types/models.d.ts +++ b/types/models.d.ts @@ -612,11 +612,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;