diff --git a/packages/svelte/src/main/public.d.ts b/packages/svelte/src/main/public.d.ts index f916a158d6..32675e5540 100644 --- a/packages/svelte/src/main/public.d.ts +++ b/packages/svelte/src/main/public.d.ts @@ -196,7 +196,10 @@ declare const SnippetReturn: unique symbol; * You can only call a snippet through the `{@render ...}` tag. */ export interface Snippet { - (this: void, ...args: T): typeof SnippetReturn & { + ( + this: void, + ...args: T + ): typeof SnippetReturn & { _: 'functions passed to {@render ...} tags must use the `Snippet` type imported from "svelte"'; }; } diff --git a/packages/svelte/tests/types/snippet.ts b/packages/svelte/tests/types/snippet.ts index 5a1e46c241..edc5aba123 100644 --- a/packages/svelte/tests/types/snippet.ts +++ b/packages/svelte/tests/types/snippet.ts @@ -20,18 +20,18 @@ const d: Snippet = (a: string, b: number) => { const e: Snippet = (a: string) => { return return_type; }; +// @ts-expect-error const f: Snippet = (a) => { - // @ts-expect-error a?.x; return return_type; }; -const g: Snippet = (a) => { +const g: Snippet<[boolean]> = (a) => { // @ts-expect-error a === ''; a === true; return return_type; }; -const h: Snippet<{ a: true }> = (a) => { +const h: Snippet<[{ a: true }]> = (a) => { a.a === true; return return_type; };