Stores

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>
);
}

Merge

type Merge<T extends unknown[]> = Simplify<_Merge<T>>;
Last updated: 7/4/26, 6:21 PMEdit this pageReport an issue with this page