diff --git a/test/types/discriminator.test.ts b/test/types/discriminator.test.ts index 052e3c3ba3c..1f32fd1149b 100644 --- a/test/types/discriminator.test.ts +++ b/test/types/discriminator.test.ts @@ -18,6 +18,12 @@ const doc: IDiscriminatorTest = new Disc({ name: 'foo', email: 'hi' }); doc.name = 'bar'; doc.email = 'hello'; +const Disc2 = Base.discriminator( + 'Disc2', + new Schema({ email: { type: String } }), + { value: 'test', mergeHooks: false } +); + function test(): void { enum CardType { Artifact = 'artifact', diff --git a/types/models.d.ts b/types/models.d.ts index d3cbbcf1338..1f4cd3cc2ce 100644 --- a/types/models.d.ts +++ b/types/models.d.ts @@ -1,10 +1,17 @@ declare module 'mongoose' { import mongodb = require('mongodb'); + export interface DiscriminatorOptions { + value?: string | number | ObjectId; + clone?: boolean; + overwriteModels?: boolean; + mergeHooks?: boolean; + } + export interface AcceptsDiscriminator { /** Adds a discriminator type. */ - discriminator(name: string | number, schema: Schema, value?: string | number | ObjectId): Model; - discriminator(name: string | number, schema: Schema, value?: string | number | ObjectId): U; + discriminator(name: string | number, schema: Schema, value?: string | number | ObjectId | DiscriminatorOptions): Model; + discriminator(name: string | number, schema: Schema, value?: string | number | ObjectId | DiscriminatorOptions): U; } interface MongooseBulkWriteOptions {