Skip to content

Commit 060039d

Browse files
committed
fix(index.d.ts): improve autocomplete for new Model() by making doc an object with correct keys
Fix #10475 Re: #10343 Re: #10302
1 parent 2066180 commit 060039d

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

index.d.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -750,12 +750,13 @@ declare module 'mongoose' {
750750
discriminator<T, U extends Model<T>>(name: string | number, schema: Schema<T, U>, value?: string | number | ObjectId): U;
751751
}
752752

753+
type AnyKeys<T> = Partial<{ [P in keyof T]: T[P] | any }>;
753754
interface AnyObject { [k: string]: any }
754755
type EnforceDocument<T, TMethods> = T extends Document ? T : T & Document<any, any, T> & TMethods;
755756

756757
export const Model: Model<any>;
757758
interface Model<T, TQueryHelpers = {}, TMethods = {}> extends NodeJS.EventEmitter, AcceptsDiscriminator {
758-
new(doc?: T | any): EnforceDocument<T, TMethods>;
759+
new(doc?: AnyKeys<T> & AnyObject): EnforceDocument<T, TMethods>;
759760

760761
aggregate<R = any>(pipeline?: any[]): Aggregate<Array<R>>;
761762
aggregate<R = any>(pipeline: any[], cb: Function): Promise<Array<R>>;

0 commit comments

Comments
 (0)