```js // @noErrors import { derived, fromStore, get, readable, readonly, toStore, writable } from 'svelte/store'; ``` ## derived Derived value store by synchronizing one or more readable stores and applying an aggregation function over its input values.
```dts function derived( stores: S, fn: ( values: StoresValues, set: (value: T) => void, update: (fn: Updater) => void ) => Unsubscriber | void, initial_value?: T | undefined ): Readable; ```
```dts function derived( stores: S, fn: (values: StoresValues) => T, initial_value?: T | undefined ): Readable; ```
## fromStore
```dts function fromStore(store: Writable): { current: V; }; ```
```dts function fromStore(store: Readable): { readonly current: V; }; ```
## get Get the current value from a store by subscribing and immediately unsubscribing.
```dts function get(store: Readable): T; ```
## readable Creates a `Readable` store that allows reading by subscription.
```dts function readable( value?: T | undefined, start?: StartStopNotifier | undefined ): Readable; ```
## readonly Takes a store and returns a new one derived from the old one that is readable.
```dts function readonly(store: Readable): Readable; ```
## toStore
```dts function toStore( get: () => V, set: (v: V) => void ): Writable; ```
```dts function toStore(get: () => V): Readable; ```
## writable Create a `Writable` store that allows both updating and reading by subscription.
```dts function writable( value?: T | undefined, start?: StartStopNotifier | undefined ): Writable; ```
## Readable Readable interface for subscribing.
```dts interface Readable {/*…*/} ```
```dts subscribe(this: void, run: Subscriber, invalidate?: () => void): Unsubscriber; ```
- `run` subscription callback - `invalidate` cleanup callback
Subscribe on value changes.
## StartStopNotifier Start and stop notification callbacks. This function is called when the first subscriber subscribes.
```dts type StartStopNotifier = ( set: (value: T) => void, update: (fn: Updater) => void ) => void | (() => void); ```
## Subscriber Callback to inform of a value updates.
```dts type Subscriber = (value: T) => void; ```
## Unsubscriber Unsubscribes from value updates.
```dts type Unsubscriber = () => void; ```
## Updater Callback to update a value.
```dts type Updater = (value: T) => T; ```
## Writable Writable interface for both updating and subscribing.
```dts interface Writable extends Readable {/*…*/} ```
```dts set(this: void, value: T): void; ```
- `value` to set
Set value and inform subscribers.
```dts update(this: void, updater: Updater): void; ```
- `updater` callback
Update value using callback and inform subscribers.