Skip to content

Commit de26015

Browse files
committed
feat: enhance type
1 parent 5acacd0 commit de26015

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

src/options/props.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,23 @@ export type ResolvePropConstructor<T> = T extends string
1919
? ObjectConstructor
2020
: any
2121

22+
export type ResolvePropType<T> =
23+
| ResolvePropConstructor<T>
24+
| ResolvePropConstructor<T>[]
25+
| true
26+
| null
27+
2228
export type ResolvePropOptions<T> = {
23-
[K in keyof T]-?: {
24-
type: ResolvePropConstructor<NonNullable<T[K]>>
25-
required: Partial<Pick<T, K>> extends Pick<T, K> ? true : false
26-
}
29+
[K in keyof T]-?:
30+
| {
31+
type: ResolvePropConstructor<NonNullable<T[K]>>
32+
required: Partial<Pick<T, K>> extends Pick<T, K> ? true : false
33+
}
34+
| ResolvePropType<NonNullable<T[K]>>
2735
}
2836

2937
export const definePropType = <T>(
30-
type?: ResolvePropConstructor<T> | ResolvePropConstructor<T>[] | true | null
38+
type?: ResolvePropType<T> | { type: ResolvePropType<T> }
3139
): PropType<T> => type as PropType<T>
3240

3341
export type ComponentObjectPropsOptions = ComponentPropsOptions & Record<string, any>

0 commit comments

Comments
 (0)