diff --git a/.changeset/light-items-cry.md b/.changeset/light-items-cry.md new file mode 100644 index 0000000000..d120f94d3c --- /dev/null +++ b/.changeset/light-items-cry.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: add bindings generic to legacy class component for backwards compat diff --git a/packages/svelte/src/index.d.ts b/packages/svelte/src/index.d.ts index 3955f14dc2..d4f3626e20 100644 --- a/packages/svelte/src/index.d.ts +++ b/packages/svelte/src/index.d.ts @@ -44,7 +44,8 @@ type Properties = Props & export class SvelteComponent< Props extends Record = Record, Events extends Record = any, - Slots extends Record = any + Slots extends Record = any, + Bindings extends string = string > { /** The custom element version of the component. Only present if compiled with the `customElement` compiler option */ static element?: typeof HTMLElement; @@ -79,7 +80,7 @@ export class SvelteComponent< * Does not exist at runtime. * ### DO NOT USE! */ - $$bindings?: string; + $$bindings?: Bindings; /** * @deprecated This method only exists when using one of the legacy compatibility helpers, which @@ -176,8 +177,9 @@ export interface Component< export class SvelteComponentTyped< Props extends Record = Record, Events extends Record = any, - Slots extends Record = any -> extends SvelteComponent {} + Slots extends Record = any, + Bindings extends string = string +> extends SvelteComponent {} /** * @deprecated The new `Component` type does not have a dedicated Events type. Use `ComponentProps` instead. diff --git a/packages/svelte/types/index.d.ts b/packages/svelte/types/index.d.ts index 9b5bdd727d..f7b35995d1 100644 --- a/packages/svelte/types/index.d.ts +++ b/packages/svelte/types/index.d.ts @@ -41,7 +41,8 @@ declare module 'svelte' { export class SvelteComponent< Props extends Record = Record, Events extends Record = any, - Slots extends Record = any + Slots extends Record = any, + Bindings extends string = string > { /** The custom element version of the component. Only present if compiled with the `customElement` compiler option */ static element?: typeof HTMLElement; @@ -76,7 +77,7 @@ declare module 'svelte' { * Does not exist at runtime. * ### DO NOT USE! */ - $$bindings?: string; + $$bindings?: Bindings; /** * @deprecated This method only exists when using one of the legacy compatibility helpers, which @@ -173,8 +174,9 @@ declare module 'svelte' { export class SvelteComponentTyped< Props extends Record = Record, Events extends Record = any, - Slots extends Record = any - > extends SvelteComponent {} + Slots extends Record = any, + Bindings extends string = string + > extends SvelteComponent {} /** * @deprecated The new `Component` type does not have a dedicated Events type. Use `ComponentProps` instead.