From e299432caf627637606147ff9ecc840ab4bf593a Mon Sep 17 00:00:00 2001 From: venus Date: Tue, 20 May 2025 21:07:23 +0200 Subject: [PATCH 1/2] feat: enable TS autocomplete for Svelte HTML element definitions --- packages/svelte/elements.d.ts | 2 +- packages/svelte/svelte-html.d.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/svelte/elements.d.ts b/packages/svelte/elements.d.ts index 237e96c69919..71f28b4f97e6 100644 --- a/packages/svelte/elements.d.ts +++ b/packages/svelte/elements.d.ts @@ -2066,7 +2066,7 @@ export interface SvelteHTMLElements { failed?: import('svelte').Snippet<[error: unknown, reset: () => void]>; }; - [name: string]: { [name: string]: any }; + [name: string & {}]: { [name: string]: any }; } export type ClassValue = string | import('clsx').ClassArray | import('clsx').ClassDictionary; diff --git a/packages/svelte/svelte-html.d.ts b/packages/svelte/svelte-html.d.ts index 5042eaa4b849..69e04ff88ded 100644 --- a/packages/svelte/svelte-html.d.ts +++ b/packages/svelte/svelte-html.d.ts @@ -250,7 +250,7 @@ declare global { }; // don't type svelte:options, it would override the types in svelte/elements and it isn't extendable anyway - [name: string]: { [name: string]: any }; + [name: string & {}]: { [name: string]: any }; } } } From 3b6a0e467acf5f3aa584e12331ea2202a14b332f Mon Sep 17 00:00:00 2001 From: venus Date: Tue, 20 May 2025 22:02:21 +0200 Subject: [PATCH 2/2] extend HTMLProps type --- packages/svelte/svelte-html.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/svelte/svelte-html.d.ts b/packages/svelte/svelte-html.d.ts index 69e04ff88ded..6e37cc93e82e 100644 --- a/packages/svelte/svelte-html.d.ts +++ b/packages/svelte/svelte-html.d.ts @@ -8,7 +8,7 @@ import * as svelteElements from './elements.js'; /** * @internal do not use */ -type HTMLProps = Omit< +type HTMLProps = Omit< import('./elements.js').SvelteHTMLElements[Property], keyof Override > &