Skip to main content

Class: Signal<T>

Defined in: signals/signal.ts:15

Reactive cell that stores a value and tracks dependencies.

A cell can be a plain value (set/get) or bound to a computation fn. Reads during a bound fn's execution are recorded as dependencies; when any dep is set, the cell is marked dirty and recomputes lazily on next read.

Subscribers fire only when the cell's value actually changes. Bound cells without listeners stay lazy — they recompute on the next read. Bound cells with listeners recompute eagerly when dirtied so subscribers can be notified with a fresh value.

Type Parameters

T

T

Constructors

Constructor

new Signal<T>(initial): Signal<T>

Defined in: signals/signal.ts:26

Parameters

initial

T | (() => T)

Returns

Signal<T>

Methods

bind()

bind(fn): void

Defined in: signals/signal.ts:59

Parameters

fn

() => T

Returns

void


dispose()

dispose(): void

Defined in: signals/signal.ts:85

Permanently severs all graph edges and releases closures.

  • Upstream: removes this cell from every dep's _subs (same as unbind).
  • Downstream: removes this cell from every subscriber's _deps so they stop tracking it, then clears _subs.
  • External: clears all _listeners so subscriber callbacks are released.

After dispose() the cell is inert. Do not read or write it.

Returns

void


get()

get(): T

Defined in: signals/signal.ts:36

Returns

T


isBound()

isBound(): boolean

Defined in: signals/signal.ts:97

Returns

boolean


peek()

peek(): T

Defined in: signals/signal.ts:45

Returns

T


set()

set(value): void

Defined in: signals/signal.ts:50

Parameters

value

T

Returns

void


subscribe()

subscribe(fn): Unsubscribe

Defined in: signals/signal.ts:101

Parameters

fn

Subscriber<T>

Returns

Unsubscribe


unbind()

unbind(): void

Defined in: signals/signal.ts:71

Returns

void