1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
1
2
import type * as Svelte from 'svelte'
2
3
3
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
4
type IS_MODERN_SVELTE = any extends Svelte . Component ? false : true
5
5
6
6
/** A compiled, imported Svelte component. */
7
- export type Component < P > = IS_MODERN_SVELTE extends true
8
- ? Svelte . Component < P > | Svelte . SvelteComponent < P >
7
+ export type Component <
8
+ P extends Record < string , any > ,
9
+ E extends Record < string , any > ,
10
+ > = IS_MODERN_SVELTE extends true
11
+ ? Svelte . Component < P , E > | Svelte . SvelteComponent < P >
9
12
: Svelte . SvelteComponent < P >
10
13
11
14
/**
@@ -19,7 +22,7 @@ export type ComponentType<C> = C extends Svelte.SvelteComponent
19
22
: C
20
23
21
24
/** The props of a component. */
22
- export type Props < C > = Svelte . ComponentProps < C >
25
+ export type Props < C extends Component < any , any > > = Svelte . ComponentProps < C >
23
26
24
27
/**
25
28
* The exported fields of a component.
@@ -29,7 +32,7 @@ export type Props<C> = Svelte.ComponentProps<C>
29
32
*/
30
33
export type Exports < C > = C extends Svelte . SvelteComponent
31
34
? C
32
- : C extends Svelte . Component < unknown , infer E >
35
+ : C extends Svelte . Component < any , infer E >
33
36
? E
34
37
: never
35
38
@@ -38,6 +41,7 @@ export type Exports<C> = C extends Svelte.SvelteComponent
38
41
*
39
42
* In Svelte 4, these are the options passed to the component constructor.
40
43
*/
41
- export type MountOptions < C > = IS_MODERN_SVELTE extends true
42
- ? Parameters < typeof Svelte . mount < Props < C > , Exports < C > > > [ 1 ]
43
- : Svelte . ComponentConstructorOptions < Props < C > >
44
+ export type MountOptions < C extends Component < any , any > > =
45
+ IS_MODERN_SVELTE extends true
46
+ ? Parameters < typeof Svelte . mount < Props < C > , Exports < C > > > [ 1 ]
47
+ : Svelte . ComponentConstructorOptions < Props < C > >
0 commit comments