File tree 1 file changed +5
-5
lines changed 1 file changed +5
-5
lines changed Original file line number Diff line number Diff line change 1
1
import { Data } from './component' ;
2
2
3
3
export type ComponentPropsOptions < P = Data > = {
4
- [ K in keyof P ] : Prop < P [ K ] > | null ;
4
+ [ K in keyof P ] : Prop < P [ K ] , true | false > | null ;
5
5
} ;
6
6
7
- type Prop < T > = PropOptions < T > | PropType < T > ;
7
+ type Prop < T , Required extends boolean > = PropOptions < T , Required > | PropType < T > ;
8
8
9
- export interface PropOptions < T = any > {
9
+ export interface PropOptions < T = any , Required extends boolean = false > {
10
10
type ?: PropType < T > | null ;
11
- required ?: boolean ;
11
+ required ?: Required ;
12
12
default ?: T | null | undefined | ( ( ) => T | null | undefined ) ;
13
13
validator ?( value : any ) : boolean ;
14
14
}
@@ -34,7 +34,7 @@ type InferPropType<T> = T extends null
34
34
? any // somehow `ObjectConstructor` when inferred from { (): T } becomes `any`
35
35
: T extends ObjectConstructor | { type : ObjectConstructor }
36
36
? { [ key : string ] : any }
37
- : T extends Prop < infer V >
37
+ : T extends Prop < infer V , true | false >
38
38
? V
39
39
: T ;
40
40
You can’t perform that action at this time.
0 commit comments