Skip to content

Commit d921fb9

Browse files
authored
fix: add types for svelte/reactivity (#10817)
* fix: add types for svelte/reactivity - closes #10816 * simplify --------- Co-authored-by: Rich Harris <[email protected]>
1 parent 474fc7e commit d921fb9

File tree

4 files changed

+52
-3
lines changed

4 files changed

+52
-3
lines changed

.changeset/serious-needles-joke.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'svelte': patch
3+
---
4+
5+
fix: add types for svelte/reactivity

packages/svelte/scripts/generate-types.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ await createBundle({
2929
[`${pkg.name}/easing`]: `${dir}/src/easing/index.js`,
3030
[`${pkg.name}/legacy`]: `${dir}/src/legacy/legacy-client.js`,
3131
[`${pkg.name}/motion`]: `${dir}/src/motion/public.d.ts`,
32+
[`${pkg.name}/reactivity`]: `${dir}/src/reactivity/index.js`,
3233
[`${pkg.name}/server`]: `${dir}/src/server/index.js`,
3334
[`${pkg.name}/store`]: `${dir}/src/store/public.d.ts`,
3435
[`${pkg.name}/transition`]: `${dir}/src/transition/public.d.ts`,

packages/svelte/src/reactivity/date.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,15 @@ const write = [
5555
'setYear'
5656
];
5757

58+
var inited = false;
59+
5860
export class ReactiveDate extends Date {
5961
#raw_time = source(super.getTime());
60-
static #inited = false;
6162

6263
// We init as part of the first instance so that we can treeshake this class
6364
#init() {
64-
if (!ReactiveDate.#inited) {
65-
ReactiveDate.#inited = true;
65+
if (!inited) {
66+
inited = true;
6667
const proto = ReactiveDate.prototype;
6768
const date_proto = Date.prototype;
6869

packages/svelte/types/index.d.ts

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1806,6 +1806,48 @@ declare module 'svelte/motion' {
18061806
export function tweened<T>(value?: T | undefined, defaults?: TweenedOptions<T> | undefined): Tweened<T>;
18071807
}
18081808

1809+
declare module 'svelte/reactivity' {
1810+
export class Date extends Date {
1811+
1812+
constructor(...values: any[]);
1813+
#private;
1814+
}
1815+
export class Set<T> extends Set<any> {
1816+
1817+
constructor(value?: Iterable<T> | null | undefined);
1818+
1819+
has(value: T): boolean;
1820+
1821+
add(value: T): this;
1822+
1823+
delete(value: T): boolean;
1824+
keys(): IterableIterator<T>;
1825+
values(): IterableIterator<T>;
1826+
entries(): IterableIterator<[T, T]>;
1827+
[Symbol.iterator](): IterableIterator<T>;
1828+
#private;
1829+
}
1830+
export class Map<K, V> extends Map<any, any> {
1831+
1832+
constructor(value?: Iterable<readonly [K, V]> | null | undefined);
1833+
1834+
has(key: K): boolean;
1835+
1836+
forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, this_arg?: any): void;
1837+
1838+
get(key: K): V | undefined;
1839+
1840+
set(key: K, value: V): this;
1841+
1842+
delete(key: K): boolean;
1843+
keys(): IterableIterator<K>;
1844+
values(): IterableIterator<V>;
1845+
entries(): IterableIterator<[K, V]>;
1846+
[Symbol.iterator](): IterableIterator<[K, V]>;
1847+
#private;
1848+
}
1849+
}
1850+
18091851
declare module 'svelte/server' {
18101852
export function render(component: (...args: any[]) => void, options: {
18111853
props: Record<string, any>;

0 commit comments

Comments
 (0)