API Reference¶
Classes¶
signified.Signal
¶
Bases: Variable[T]
Mutable state.
Signal stores a value and notifies observers when that value changes.
The value property is read/write:
- reading
valuereturns the current plain value - assigning
valueupdates the stored value and notifies observers if it changed
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
HasValue[T]
|
Value to wrap. |
required |
Example
value
property
writable
¶
The current value.
Getting this property returns the plain Python value, unwrapping any nested reactive. Setting it updates the stored value and notifies observers if the value changed.
at
¶
Temporarily set the signal to a given value within a context.
Restores the previous value when the context exits, even if an exception is raised.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
T
|
The temporary value to set. |
required |
signified.Computed
¶
Bases: Variable[T]
Reactive value derived from a computation.
Computed lazily re-runs its function and updates its value whenever a
dependency changes. Dependencies are inferred automatically from which
reactive values are read during evaluation.
In most cases Computed instances should be created implicitly by using
overloaded operators or the computed decorator rather
than directly using the Computed class.
Unlike Signal, Computed.value is read-only.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
f
|
Callable[[], T]
|
Zero-argument function used to compute the current value. |
required |
Example
invalidate
¶
Force a full recomputation on the next .value read.
Use this when a reactive attribute is replaced with a new object and the normal change-detection path may not pick up the change. Unlike a regular update, this always triggers re-evaluation regardless of whether dependencies appear unchanged.
Warning
This method is fragile and should be a last resort. Incorrect use
can cause unnecessary recomputation or missed updates. Prefer
assigning to .value whenever possible, as this triggers the
standard change-detection path.
signified.Effect
¶
Run a function (for its side effects) and re-run it whenever its reactive dependencies change.
Any reactive value read inside fn — via .value or unref — is
automatically tracked as a dependency. The function runs once immediately on
construction, then again each time a dependency changes.
Warning
Dependencies are tracked dynamically on each run. Only values that are read on the branch executed in the last run are tracked.
This means that if a reactive value within the function is not read, then updates to that value will not trigger the effect.
For example: in Effect(lambda: x.value if y.value else z.value), if y.value was truthy then only x and y will be tracked.
The effect stays active as long as you hold a reference to this object. Call Effect.dispose to stop it explicitly.
Warning
The Effect instance must be assigned to a variable. If the result
is discarded, it is immediately eligible for garbage collection and the
effect will silently stop running:
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
fn
|
Callable[[], None]
|
Zero-argument callable run for its side effects. |
required |
Example
signified.Variable
¶
Bases: ABC, _ReactiveMixIn[T]
Abstract base class for reactive values.
Both Signal and Computed extend this class. You should use them directly.
Variable is only exposed for type hinting or subclassing purposes.
Reactive Namespace¶
The rx property on any reactive value exposes a namespace of additional
operations — reactive equivalents of things Python's dunder protocol cannot
return as reactive values (identity checks, containment, ternary, etc.):
Helper methods available under signal_or_computed.rx.
map
¶
Return a reactive value by applying fn to the source.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
fn
|
Callable[[T], R]
|
Function used to transform the current source value. |
required |
Returns:
| Type | Description |
|---|---|
Computed[R]
|
A reactive value for |
effect
¶
Eagerly run fn for side effects whenever the source changes.
fn is called immediately on creation and again on every subsequent
change — without requiring the caller to read .value.
This is a convenience wrapper around Effect. The source value is
passed as the single argument to fn on each run. For effects that need
to read multiple reactive values, use Effect directly.
The effect is active as long as the caller holds the returned Effect instance. Call Effect.dispose to stop it explicitly.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
fn
|
Callable[[T], None]
|
Callback that receives the current source value on each change. |
required |
Returns:
| Type | Description |
|---|---|
'Effect'
|
An Effect instance whose lifetime controls the subscription. |
peek
¶
Run fn for side effects and pass through the original value.
fn only executes when the returned Computed is read, not on every
upstream change. Intermediate values are skipped if the source changes
multiple times between reads.
Warning
The returned Computed must be kept alive by the caller.
Observers are held as weak references, so if nothing holds a strong
reference to the returned value, it will be garbage-collected and
fn will silently stop running.
fn fires on each explicit .value read — not on creation and
not on upstream changes alone. If the returned object is
garbage-collected before any .value read, fn never fires at all:
For eager side effects, use the effect method or Effect directly.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
fn
|
Callable[[T], Any]
|
Side-effect callback that receives the current source value. |
required |
Returns:
| Type | Description |
|---|---|
Computed[T]
|
A reactive value that always equals |
len
¶
Return a reactive value for len(source.value).
Returns:
| Type | Description |
|---|---|
Computed[int]
|
A reactive value for |
is_
¶
Return a reactive value for identity check source.value is other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
Value to compare against with identity semantics. |
required |
Returns:
| Type | Description |
|---|---|
Computed[bool]
|
A reactive value for |
is_not
¶
Return a reactive value for identity check source.value is not other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
Value to compare against with identity semantics. |
required |
Returns:
| Type | Description |
|---|---|
Computed[bool]
|
A reactive value for |
in_
¶
Return a reactive value for containment check source.value in container.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
container
|
Any
|
Value checked for membership, e.g. list/string/set. |
required |
Returns:
| Type | Description |
|---|---|
Computed[bool]
|
A reactive value for |
contains
¶
Return a reactive value for whether other is in self._source.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
The value to check for containment. |
required |
Returns:
| Type | Description |
|---|---|
Computed[bool]
|
A reactive value for |
eq
¶
Return a reactive value for whether source.value == other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
Value to compare against. |
required |
Returns:
| Type | Description |
|---|---|
Computed[bool]
|
A reactive value for |
where
¶
Return a reactive value for a if source is truthy, else b.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
a
|
HasValue[A]
|
The value to return if source is truthy. |
required |
b
|
HasValue[B]
|
The value to return if source is falsy. |
required |
Returns:
| Type | Description |
|---|---|
Computed[A | B]
|
A reactive value for |
Magic Methods¶
Reactive values support Python's operator protocol. Arithmetic, comparison, subscript, and attribute-access operations all return reactive Computed values derived from their operands.
Methods for easily creating reactive values.
__getattr__
¶
__getattr__(name: str) -> Computed[Any]
Create a reactive value for retrieving an attribute from self.value.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
The name of the attribute to access. |
required |
Returns:
| Type | Description |
|---|---|
Union[T, Computed[Any]]
|
A reactive value for the attribute access. |
Raises:
| Type | Description |
|---|---|
AttributeError
|
If the attribute doesn't exist. |
Note
Type inference is poor whenever __getattr__ is used.
__call__
¶
Create a reactive value for calling self.value(*args, **kwargs).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
*args
|
P.args
|
Positional arguments to pass to the callable value. |
()
|
**kwargs
|
P.kwargs
|
Keyword arguments to pass to the callable value. |
{}
|
Returns:
| Type | Description |
|---|---|
Computed[R]
|
A reactive value for the function call. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the value is not callable. |
__abs__
¶
__round__
¶
__round__() -> Computed[int]
__round__(ndigits: None) -> Computed[int]
__round__(ndigits: int) -> Computed[int]
__round__() -> Computed[int]
__round__(ndigits: None) -> Computed[int]
__round__(ndigits: int) -> Computed[int]
__round__() -> Computed[int]
__round__(ndigits: None) -> Computed[int]
__round__(ndigits: int) -> Computed[float]
__ceil__
¶
Return a reactive value for the ceiling of self.
Returns:
| Type | Description |
|---|---|
Computed[int]
|
A reactive value for |
__floor__
¶
Return a reactive value for the floor of self.
Returns:
| Type | Description |
|---|---|
Computed[int]
|
A reactive value for |
__trunc__
¶
__neg__
¶
__pos__
¶
__invert__
¶
__add__
¶
__add__(other: HasValue[int] | HasValue[float]) -> Computed[float]
__add__(other: HasValue[float]) -> Computed[float]
__add__(other: HasValue[Y]) -> Computed[R]
__add__(other: Any) -> Computed[Any]
Return a reactive value for the sum of self and other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
The value to add. |
required |
Returns:
| Type | Description |
|---|---|
Computed[Any]
|
A reactive value for |
__radd__
¶
__radd__(other: HasValue[int] | HasValue[float]) -> Computed[float]
__radd__(other: HasValue[_SupportsAdd[T, R]]) -> Computed[R]
__radd__(other: Any) -> Computed[Any]
Return a reactive value for the sum of self and other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
The value to add. |
required |
Returns:
| Type | Description |
|---|---|
Computed[Any]
|
A reactive value for |
__sub__
¶
Return a reactive value for the difference of self and other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
HasValue[Y]
|
The value to subtract. |
required |
Returns:
| Type | Description |
|---|---|
Computed[T | Y]
|
A reactive value for |
__rsub__
¶
Return a reactive value for the difference of self and other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
HasValue[Y]
|
The value to subtract from. |
required |
Returns:
| Type | Description |
|---|---|
Computed[T | Y]
|
A reactive value for |
__mul__
¶
__mul__(other: HasValue[int]) -> Computed[str]
__mul__(other: HasValue[int]) -> Computed[list[V]]
__mul__(other: HasValue[Y]) -> Computed[T | Y]
Return a reactive value for the product of self and other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
The value to multiply with. |
required |
Returns:
| Type | Description |
|---|---|
Computed[Any]
|
A reactive value for |
__rmul__
¶
__rmul__(other: HasValue[int]) -> Computed[str]
__rmul__(other: HasValue[int]) -> Computed[list[V]]
__rmul__(other: HasValue[Y]) -> Computed[T | Y]
Return a reactive value for the product of self and other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
The value to multiply with. |
required |
Returns:
| Type | Description |
|---|---|
Computed[Any]
|
A reactive value for |
__truediv__
¶
__truediv__(other: HasValue[int]) -> Computed[float]
__truediv__(other: HasValue[float]) -> Computed[float]
__truediv__(other: HasValue[int]) -> Computed[float]
__truediv__(other: HasValue[float]) -> Computed[float]
__truediv__(other: HasValue[bool] | HasValue[int] | HasValue[float]) -> Computed[float]
__truediv__(other: HasValue[Y]) -> Computed[T | Y]
Return a reactive value for self divided by other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
The value to use as the divisor. |
required |
Returns:
| Type | Description |
|---|---|
Computed[Any]
|
A reactive value for |
__rtruediv__
¶
__rtruediv__(other: HasValue[int]) -> Computed[float]
__rtruediv__(other: HasValue[float]) -> Computed[float]
__rtruediv__(other: HasValue[int]) -> Computed[float]
__rtruediv__(other: HasValue[float]) -> Computed[float]
__rtruediv__(other: HasValue[bool] | HasValue[int] | HasValue[float]) -> Computed[float]
__rtruediv__(other: HasValue[Y]) -> Computed[T | Y]
Return a reactive value for self divided by other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
The value to use as the divisor. |
required |
Returns:
| Type | Description |
|---|---|
Computed[Any]
|
A reactive value for |
__floordiv__
¶
__floordiv__(other: HasValue[bool] | HasValue[int]) -> Computed[int]
__floordiv__(other: HasValue[Y]) -> Computed[T | Y]
Return a reactive value for the floor division of self by other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
The value to use as the divisor. |
required |
Returns:
| Type | Description |
|---|---|
Computed[Any]
|
A reactive value for self.value // other.value. |
__rfloordiv__
¶
__rfloordiv__(other: HasValue[bool] | HasValue[int]) -> Computed[int]
__rfloordiv__(other: HasValue[Y]) -> Computed[T | Y]
Return a reactive value for the floor division of other by self.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
The value to use as the numerator. |
required |
Returns:
| Type | Description |
|---|---|
Computed[Any]
|
A reactive value for |
__mod__
¶
__mod__(other: HasValue[bool] | HasValue[int]) -> Computed[int]
__mod__(other: HasValue[Y]) -> Computed[T | Y]
Return a reactive value for self modulo other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
The divisor. |
required |
Returns:
| Type | Description |
|---|---|
Computed[Any]
|
A reactive value for |
__rmod__
¶
__rmod__(other: HasValue[bool] | HasValue[int]) -> Computed[int]
__rmod__(other: HasValue[Y]) -> Computed[T | Y]
Return a reactive value for other modulo self.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
The dividend. |
required |
Returns:
| Type | Description |
|---|---|
Computed[Any]
|
A reactive value for |
__pow__
¶
__pow__(other: HasValue[bool] | HasValue[int]) -> Computed[int]
__pow__(other: HasValue[Y]) -> Computed[T | Y]
Return a reactive value for self raised to the power of other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
The exponent. |
required |
Returns:
| Type | Description |
|---|---|
Computed[Any]
|
A reactive value for |
__rpow__
¶
__rpow__(other: HasValue[bool] | HasValue[int]) -> Computed[int]
__rpow__(other: HasValue[Y]) -> Computed[T | Y]
Return a reactive value for self raised to the power of other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
The base. |
required |
Returns:
| Type | Description |
|---|---|
Computed[Any]
|
A reactive value for |
__matmul__
¶
Return a reactive value for the matrix multiplication of self and other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
HasValue[Y]
|
The value to multiply with. |
required |
Returns:
| Type | Description |
|---|---|
Computed[T | Y]
|
A reactive value for |
__and__
¶
Return a reactive value for the bitwise AND of self and other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
HasValue[Y]
|
The value to AND with. |
required |
Returns:
| Type | Description |
|---|---|
Computed[T | Y]
|
A reactive value for |
__rand__
¶
Return a reactive value for the bitwise AND of self and other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
HasValue[Y]
|
The value to AND with. |
required |
Returns:
| Type | Description |
|---|---|
Computed[T | Y]
|
A reactive value for |
__or__
¶
Return a reactive value for the bitwise OR of self and other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
HasValue[Y]
|
The value to OR with. |
required |
Returns:
| Type | Description |
|---|---|
Computed[T | Y]
|
A reactive value for |
__ror__
¶
Return a reactive value for the bitwise OR of self and other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
HasValue[Y]
|
The value to OR with. |
required |
Returns:
| Type | Description |
|---|---|
Computed[T | Y]
|
A reactive value for |
__xor__
¶
Return a reactive value for the bitwise XOR of self and other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
HasValue[Y]
|
The value to XOR with. |
required |
Returns:
| Type | Description |
|---|---|
Computed[T | Y]
|
A reactive value for |
__rxor__
¶
Return a reactive value for the bitwise XOR of self and other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
HasValue[Y]
|
The value to XOR with. |
required |
Returns:
| Type | Description |
|---|---|
Computed[T | Y]
|
A reactive value for |
__lshift__
¶
Return a reactive value for self left-shifted by other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
HasValue[Y]
|
The number of positions to shift. |
required |
Returns:
| Type | Description |
|---|---|
Computed[T | Y]
|
A reactive value for |
__rshift__
¶
Return a reactive value for self right-shifted by other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
HasValue[Y]
|
The number of positions to shift. |
required |
Returns:
| Type | Description |
|---|---|
Computed[T | Y]
|
A reactive value for |
__divmod__
¶
__divmod__(other: HasValue[int]) -> Computed[tuple[int, int]]
__divmod__(other: HasValue[bool] | HasValue[int]) -> Computed[tuple[int, int]]
__divmod__(other: Any) -> Computed[tuple[float, float]]
__rdivmod__
¶
__rdivmod__(other: HasValue[int]) -> Computed[tuple[int, int]]
__rdivmod__(other: HasValue[int]) -> Computed[tuple[int, int]]
__rdivmod__(other: HasValue[bool]) -> Computed[tuple[int, int]]
__rdivmod__(other: Any) -> Computed[tuple[float, float]]
__lt__
¶
Return a reactive value for whether self is less than other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
The value to compare against. |
required |
Returns:
| Type | Description |
|---|---|
Computed[bool]
|
A reactive value for |
__le__
¶
Return a reactive value for whether self is less than or equal to other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
The value to compare against. |
required |
Returns:
| Type | Description |
|---|---|
Computed[bool]
|
A reactive value for |
__ge__
¶
Return a reactive value for whether self is greater than or equal to other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
The value to compare against. |
required |
Returns:
| Type | Description |
|---|---|
Computed[bool]
|
A reactive value for self.value >= other. |
__gt__
¶
Return a reactive value for whether self is greater than other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
The value to compare against. |
required |
Returns:
| Type | Description |
|---|---|
Computed[bool]
|
A reactive value for self.value > other. |
__ne__
¶
Return a reactive value for whether self is not equal to other.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
other
|
Any
|
The value to compare against. |
required |
Returns:
| Type | Description |
|---|---|
Computed[bool]
|
A reactive value for |
__getitem__
¶
__getitem__(key: slice) -> Computed[list[V]]
__getitem__(key: slice) -> Computed[tuple[V, ...]]
__getitem__(key: slice) -> Computed[str]
__getitem__(key: HasValue[SupportsIndex] | HasValue[int]) -> Computed[V]
__getitem__(key: HasValue[SupportsIndex] | HasValue[int]) -> Computed[V]
__getitem__(key: HasValue[SupportsIndex] | HasValue[int]) -> Computed[str]
__getitem__(key: HasValue[K]) -> Computed[V]
__getitem__(key: HasValue[K]) -> Computed[V]
__getitem__(key: Any) -> Computed[Any]
Return a reactive value for the item or slice of self.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
Any
|
The index or slice to retrieve. |
required |
Returns:
| Type | Description |
|---|---|
Computed[Any]
|
A reactive value for |
__setattr__
¶
Assign name on the wrapper or forward it to the wrapped value.
Private attributes and names owned by the wrapper type are assigned on the wrapper itself. Other names are forwarded to the wrapped value when that object already defines the attribute, then observers are notified so dependents recompute.
This allows signal.name = "Bob" to update the wrapped object while still
preserving the wrapper's own API such as .value and .rx.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
The attribute name to assign. |
required |
value
|
Any
|
The value to assign. |
required |
__setitem__
¶
Set an item on the underlying self.value.
Note
It is necessary to set the item via the Signal, rather than the
underlying signal.value, to properly notify downstream observers
of changes. Reason being, mutable objects that, for example, fallback
to id comparison for equality checks will appear as if nothing changed
even an element of the object is changed.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
Any
|
The key to change. |
required |
value
|
Any
|
The value to set it to. |
required |
Example
```py
s = Signal([1, 2, 3]) result = computed(sum)(s) result.value 6 s[1] = 4 result.value 8
Functions¶
signified.computed
¶
Wrap a function so calls produce a reactive Computed result.
The returned wrapper accepts plain values, reactive values, or nested
containers. On each recomputation, arguments are resolved with
deep_unref, so func always receives plain Python values.
Any reactive value read during evaluation becomes a dependency; the Computed updates automatically when any dependency changes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
func
|
Callable[..., R]
|
Function that computes a derived value from its inputs. |
required |
Returns:
| Type | Description |
|---|---|
Callable[..., Computed[R]]
|
A wrapper that returns a Computed when called. |
signified.unref
¶
Unwrap a reactive value to its plain Python value.
Repeatedly follows the .value chain until a non-reactive value is
reached. When called inside a Computed or Effect evaluation,
each unwrapped reactive registers as a dependency — equivalent to
reading .value directly.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
HasValue[T]
|
Plain value, reactive value, or nested reactive value. |
required |
Returns:
| Type | Description |
|---|---|
T
|
The fully unwrapped value. |
signified.deep_unref
¶
Recursively resolve reactive values within nested containers.
Like unref, but also descends into dict, list, tuple, and other
iterables, replacing any reactive values found within them.
Supported containers:
- scalars (
int,float,str,bool,None) are returned unchanged - reactive values are unwrapped recursively
dict,list, andtuplecontents are recursively unwrapped- generic iterables are reconstructed when possible; otherwise returned as-is
numpy.ndarraywithdtype=objectis unwrapped element-wise
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
Any
|
Any value, possibly containing reactive values. |
required |
Returns:
| Type | Description |
|---|---|
Any
|
Value with reactive nodes recursively replaced by plain values. |
signified.has_value
¶
Check whether an object's resolved value is an instance of type_.
A typed guard around unref. Useful when a parameter accepts either a plain value or a reactive wrapper and you need to narrow the type.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
obj
|
Any
|
Value to inspect. May be plain or reactive. |
required |
type_
|
type[T]
|
Expected resolved value type. |
required |
Returns:
| Type | Description |
|---|---|
TypeGuard[HasValue[T]]
|
|
signified.as_rx
¶
Normalize a value to a reactive object.
If val is already reactive, it is returned unchanged. Otherwise a new
Signal is created wrapping the value.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
val
|
HasValue[T]
|
Plain value or reactive value. |
required |
Returns:
| Type | Description |
|---|---|
ReactiveValue[T]
|
A reactive value. |
Types¶
HasValue[T] — T | Computed[T] | Signal[T]
A plain or reactive value that resolves to T. Use as a type hint when a
parameter accepts either a raw value or a reactive wrapper.
ReactiveValue[T] — Computed[T] | Signal[T]
A reactive wrapper that resolves to T.