diff --git a/packages/svelte/src/ambient.d.ts b/packages/svelte/src/ambient.d.ts index 159a568477..9d37116e56 100644 --- a/packages/svelte/src/ambient.d.ts +++ b/packages/svelte/src/ambient.d.ts @@ -86,7 +86,13 @@ declare namespace $state { : T extends { toJSON(): infer R } ? R : T extends readonly unknown[] - ? { [K in keyof T]: Snapshot } + ? number extends T['length'] + ? T extends Array + ? Array> + : T extends ReadonlyArray + ? ReadonlyArray> + : never + : { [K in keyof T]: Snapshot } : T extends Array ? Array> : T extends object diff --git a/packages/svelte/types/index.d.ts b/packages/svelte/types/index.d.ts index 019baf45dd..f229ed48d3 100644 --- a/packages/svelte/types/index.d.ts +++ b/packages/svelte/types/index.d.ts @@ -2203,10 +2203,10 @@ declare module 'svelte/motion' { * const tween = Tween.of(() => number); * * ``` - * + * */ static of(fn: () => U, options?: TweenOptions | undefined): Tween; - + constructor(value: T, options?: TweenOptions); /** * Sets `tween.target` to `value` and returns a `Promise` that resolves if and when `tween.current` catches up to it. @@ -2257,7 +2257,7 @@ declare module 'svelte/reactivity' { * ``` */ export class SvelteDate extends Date { - + constructor(...params: any[]); #private; } @@ -2293,12 +2293,12 @@ declare module 'svelte/reactivity' { * {#if monkeys.has('🙊')}

speak no evil

{/if} * ``` * - * + * */ export class SvelteSet extends Set { - + constructor(value?: Iterable | null | undefined); - + add(value: T): this; #private; } @@ -2344,12 +2344,12 @@ declare module 'svelte/reactivity' { * {/if} * ``` * - * + * */ export class SvelteMap extends Map { - + constructor(value?: Iterable | null | undefined); - + set(key: K, value: V): this; #private; } @@ -2412,7 +2412,7 @@ declare module 'svelte/reactivity' { * ``` */ export class SvelteURLSearchParams extends URLSearchParams { - + [REPLACE](params: URLSearchParams): void; #private; } @@ -2488,7 +2488,7 @@ declare module 'svelte/reactivity' { */ export function createSubscriber(start: (update: () => void) => (() => void) | void): () => void; class ReactiveValue { - + constructor(fn: () => T, onsubscribe: (update: () => void) => void); get current(): T; #private; @@ -2553,7 +2553,7 @@ declare module 'svelte/reactivity/window' { get current(): number | undefined; }; class ReactiveValue { - + constructor(fn: () => T, onsubscribe: (update: () => void) => void); get current(): T; #private; @@ -3284,7 +3284,13 @@ declare namespace $state { : T extends { toJSON(): infer R } ? R : T extends readonly unknown[] - ? { [K in keyof T]: Snapshot } + ? number extends T['length'] + ? T extends Array + ? Array> + : T extends ReadonlyArray + ? ReadonlyArray> + : never + : { [K in keyof T]: Snapshot } : T extends Array ? Array> : T extends object