@@ -18,8 +18,8 @@ export type ValidatedType<
18
18
: O extends ObjectShape < O >
19
19
? MapObjectShape < O > | undefined
20
20
: O extends Array < infer U >
21
- ? U extends ObjectShape < T >
22
- ? Array < { [ key in keyof U ] : ValidatedType < U [ key ] > } > | undefined
21
+ ? U extends ObjectShape < U >
22
+ ? Array < MapObjectShape < U > > | undefined
23
23
: unknown
24
24
: unknown
25
25
: T extends 'unknown'
@@ -36,17 +36,17 @@ export type ValidatedType<
36
36
? number [ ]
37
37
: T extends Array < 'boolean' >
38
38
? boolean [ ]
39
- : T extends ObjectShape < object >
40
- ? { [ key in keyof T ] : ValidatedType < T [ key ] > }
39
+ : T extends ObjectShape < T >
40
+ ? MapObjectShape < T >
41
41
: T extends Array < infer U >
42
- ? U extends ObjectShape < object >
43
- ? Array < { [ key in keyof U ] : ValidatedType < U [ key ] > } >
42
+ ? U extends ObjectShape < U >
43
+ ? Array < MapObjectShape < U > >
44
44
: unknown
45
45
: unknown
46
46
47
- type MapObjectShape < T extends ObjectShape < T > > =
48
- | { [ key in keyof T ] : ValidatedType < T [ key ] > }
49
- | undefined
47
+ type MapObjectShape < T extends ObjectShape < T > > = {
48
+ [ key in keyof T ] : ValidatedType < T [ key ] >
49
+ }
50
50
51
51
export interface ValidationOptions {
52
52
/**
@@ -89,8 +89,6 @@ export const validationTypes = {
89
89
}
90
90
91
91
// We need this generic type so we can merge ObjectShapes and not lose info
92
- // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
93
- // @ts -ignore
94
92
export type ObjectShape < T extends { } > = {
95
93
[ key in keyof T ] : ValidationKeyType < T [ key ] > | OptionalShape < T [ key ] >
96
94
}
0 commit comments