merge
Merges multiple props-like objects into a single proxy that preserves
reactivity. Reads are forwarded to the right-most source that defines the
property, so later sources override earlier ones (like Object.assign).
Function arguments are treated as memo-backed sources — useful for passing derived defaults whose computation should track reactively.
Use this in component bodies to merge defaults / overrides without losing Solid's per-property tracking.
Import
import { merge } from "solid-js";Type signature
function merge<T extends unknown[]>(...sources: T): Merge<T>;Examples
function Button(_props: { label: string; type?: string; disabled?: boolean }) { const props = merge({ type: "button", disabled: false }, _props);
return ( <button type={props.type} disabled={props.disabled}> {props.label} </button> );}Related types
Merge
type Merge<T extends unknown[]> = Simplify<_Merge<T>>;