From a8eeb7fb7d0477ddb1a09fc1f80353a4658cdb6f Mon Sep 17 00:00:00 2001 From: Mohammed Al qurafi <15172611+mhmd-22@users.noreply.github.com> Date: Sat, 24 Apr 2021 07:01:13 +0300 Subject: [PATCH] Add "context" typing on SvelteComponent class --- src/runtime/internal/dev.ts | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/src/runtime/internal/dev.ts b/src/runtime/internal/dev.ts index 99ff067474..bb73da97aa 100644 --- a/src/runtime/internal/dev.ts +++ b/src/runtime/internal/dev.ts @@ -104,6 +104,16 @@ export interface SvelteComponentDev { $destroy(): void; [accessor: string]: any; } +interface IComponentOptions { + target: Element; + anchor?: Element; + props?: Props; + context: Record; + hydrate?: boolean; + intro?: boolean; + $$inline?: boolean; +} + /** * Base class for Svelte components with some minor dev-enhancements. Used when dev=true. */ @@ -130,14 +140,7 @@ export class SvelteComponentDev extends SvelteComponent { */ $$slot_def: any; - constructor(options: { - target: Element; - anchor?: Element; - props?: Props; - hydrate?: boolean; - intro?: boolean; - $$inline?: boolean; - }) { + constructor(options: IComponentOptions) { if (!options || (!options.target && !options.$$inline)) { throw new Error("'target' is a required option"); } @@ -174,9 +177,9 @@ export interface SvelteComponentTyped< /** * Base class to create strongly typed Svelte components. * This only exists for typing purposes and should be used in `.d.ts` files. - * + * * ### Example: - * + * * You have component library on npm called `component-library`, from which * you export a component called `MyComponent`. For Svelte+TypeScript users, * you want to provide typings. Therefore you create a `index.d.ts`: @@ -193,7 +196,7 @@ export interface SvelteComponentTyped< * * * ``` - * + * * #### Why not make this part of `SvelteComponent(Dev)`? * Because * ```ts @@ -229,14 +232,7 @@ export class SvelteComponentTyped< */ $$slot_def: Slots; - constructor(options: { - target: Element; - anchor?: Element; - props?: Props; - hydrate?: boolean; - intro?: boolean; - $$inline?: boolean; - }) { + constructor(options: IComponentOptions) { super(options); } }