API / Js / Obj

You are currently looking at the < v8.2.0 docs (Reason v3.6 syntax edition). You can find the latest API docs here.

(These docs cover all versions between v3 to v8 and are equivalent to the old BuckleScript docs before the rebrand)


Provide utilities for Js.t.


let empty: unit => Js.t({..});

empty() returns the empty object {}.


let assign: (Js.t({..}), Js.t({..})) => Js.t({..});

assign(target, source) copies properties from source to target. Properties in target will be overwritten by properties in source if they have the same key. Returns target.

/* Copy an object */ let obj = [%obj {a: 1}]; let copy = Js.Obj.assign(Js.Obj.empty(), obj); /* prints "{ a: 1 }" */ Js.log(copy); /* Merge objects with same properties */ let target = [%obj {a: 1, b: 1}]; let source = [%obj {b: 2}]; let obj = Js.Obj.assign(target, source); /* prints "{ a: 1, b: 2 }" */ Js.log(obj); /* prints "{ a: 1, b: 2 }", target is modified */ Js.log(target);


let keys: Js.t('a) => array(string);

keys(obj) returns an array of the keys of obj's own enumerable properties.