Skip to content

Commit 15ef157

Browse files
committed
fix: relax constraint for ComponentProps
`Component` with any props should be allowed to pass in
1 parent 0119f25 commit 15ef157

File tree

4 files changed

+14
-2
lines changed

4 files changed

+14
-2
lines changed

.changeset/clean-melons-wash.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"svelte": patch
3+
---
4+
5+
fix: relax constraint for `ComponentProps`

packages/svelte/src/index.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ export type ComponentEvents<Comp extends SvelteComponent> =
198198
* </script>
199199
* ```
200200
*/
201-
export type ComponentProps<Comp extends SvelteComponent | Component> =
201+
export type ComponentProps<Comp extends SvelteComponent | Component<any>> =
202202
Comp extends SvelteComponent<infer Props>
203203
? Props
204204
: Comp extends Component<infer Props>

packages/svelte/tests/types/component.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,13 @@ functionComponentInstance.foo === 'bar';
231231
// @ts-expect-error
232232
functionComponentInstance.foo = 'foo';
233233

234+
const functionComponentProps: ComponentProps<typeof functionComponent> = {
235+
binding: true,
236+
readonly: 'foo',
237+
// @ts-expect-error
238+
prop: 1
239+
};
240+
234241
mount(functionComponent, {
235242
target: null as any as Document | Element | ShadowRoot,
236243
props: {

packages/svelte/types/index.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ declare module 'svelte' {
195195
* </script>
196196
* ```
197197
*/
198-
export type ComponentProps<Comp extends SvelteComponent | Component> =
198+
export type ComponentProps<Comp extends SvelteComponent | Component<any>> =
199199
Comp extends SvelteComponent<infer Props>
200200
? Props
201201
: Comp extends Component<infer Props>

0 commit comments

Comments
 (0)