diff --git a/packages/svelte/src/store/public.d.ts b/packages/svelte/src/store/public.d.ts index 225b3feb68..a7cf7a0762 100644 --- a/packages/svelte/src/store/public.d.ts +++ b/packages/svelte/src/store/public.d.ts @@ -48,6 +48,6 @@ interface Writable extends Readable { update(this: void, updater: Updater): void; } -export { Readable, StartStopNotifier, Subscriber, Unsubscriber, Updater, Writable }; +export { Invalidator, Readable, StartStopNotifier, Subscriber, Unsubscriber, Updater, Writable }; export * from './index.js'; diff --git a/packages/svelte/tests/store/test.ts b/packages/svelte/tests/store/test.ts index 6a89e39df8..4817c9a3fc 100644 --- a/packages/svelte/tests/store/test.ts +++ b/packages/svelte/tests/store/test.ts @@ -1,5 +1,13 @@ import { describe, it, assert } from 'vitest'; -import { readable, writable, derived, get, readonly, type Readable } from 'svelte/store'; +import { + readable, + writable, + derived, + get, + readonly, + type Readable, + type Invalidator +} from 'svelte/store'; describe('writable', () => { it('creates a writable store', () => { @@ -574,3 +582,13 @@ describe('readonly', () => { assert.throws(() => readableStore.set(3)); }); }); + +describe('type Invalidator', () => { + it('check it is exported from the store', () => { + // dummy test importing Invalidator from store + // to check if it is exported + // it will fail with tsc if not exported + const invalidator: Invalidator = () => {}; + assert.equal(typeof invalidator, 'function'); + }); +}); diff --git a/packages/svelte/types/index.d.ts b/packages/svelte/types/index.d.ts index 305e1240db..9a39adc439 100644 --- a/packages/svelte/types/index.d.ts +++ b/packages/svelte/types/index.d.ts @@ -2298,7 +2298,7 @@ declare module 'svelte/store' { * */ export function get(store: Readable): T; - export { Subscriber, Unsubscriber, Updater, StartStopNotifier, Readable, Writable }; + export { Subscriber, Unsubscriber, Updater, StartStopNotifier, Readable, Writable, Invalidator }; } declare module 'svelte/transition' {