Skip to content

Commit 098c644

Browse files
committed
types(schematypes): allow defining map path using type: 'Map' in addition to type: Map
Fix #13755
1 parent b721f54 commit 098c644

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

test/types/maps.test.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,3 +71,19 @@ function gh10872(): void {
7171

7272
doc.toJSON().map1.foo;
7373
}
74+
75+
function gh13755() {
76+
class Test {
77+
instance: Map<string, string>;
78+
constructor() {
79+
this.instance = new Map<string, string>();
80+
}
81+
}
82+
83+
const testSchema = new Schema<Test>({
84+
instance: {
85+
type: 'Map',
86+
of: 'Mixed'
87+
}
88+
});
89+
}

test/types/schemaTypeOptions.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ expectType<BooleanSchemaDefinition | undefined>(new SchemaTypeOptions<boolean>()
2222
expectType<NumberSchemaDefinition | undefined>(new SchemaTypeOptions<number>().type);
2323
expectType<DateSchemaDefinition | undefined>(new SchemaTypeOptions<Date>().type);
2424
expectType<StringSchemaDefinition | undefined>(new SchemaTypeOptions<string>().type);
25-
expectType<SchemaDefinition<typeof Map> | undefined>(new SchemaTypeOptions<Map<any, any>>().type);
25+
expectType<SchemaDefinition<typeof Map> | SchemaDefinition<'Map'> | undefined>(new SchemaTypeOptions<Map<any, any>>().type);
2626
expectType<SchemaDefinition<typeof Buffer> | undefined>(new SchemaTypeOptions<Buffer>().type);
2727
expectType<ObjectIdSchemaDefinition | undefined>(new SchemaTypeOptions<Types.ObjectId>().type);
2828
expectType<AnyArray<ObjectIdSchemaDefinition> | AnyArray<SchemaTypeOptions<ObjectId>> | undefined>(new SchemaTypeOptions<Types.ObjectId[]>().type);

types/schematypes.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ declare module 'mongoose' {
4545
T extends number ? NumberSchemaDefinition :
4646
T extends boolean ? BooleanSchemaDefinition :
4747
T extends NativeDate ? DateSchemaDefinition :
48-
T extends Map<any, any> ? SchemaDefinition<typeof Map> :
48+
T extends Map<any, any> ? SchemaDefinition<typeof Map> | SchemaDefinition<'Map'> :
4949
T extends Buffer ? SchemaDefinition<typeof Buffer> :
5050
T extends Types.ObjectId ? ObjectIdSchemaDefinition :
5151
T extends Types.ObjectId[] ? AnyArray<ObjectIdSchemaDefinition> | AnyArray<SchemaTypeOptions<ObjectId, EnforcedDocType>> :

0 commit comments

Comments
 (0)