signal()
Create a mutable reactive value. Reads through `.value` are tracked; `.peek()` reads without tracking.
declare function signal<T>(initialValue: T): Signal<T>;
type SignalUpdate<T> = T | ((prev: T) => T);
interface Signal<T> {
readonly value: T;
set(update: SignalUpdate<T>): void;
peek(): T;
readonly __type__: "signal";
}Returns:A Signal<T> instance.
Example
import { signal } from "@dathra/core/reactivity";
const count = signal(0);
count.set((previous) => previous + 1);
console.log(count.value);