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)
Obj
Provide utilities for Js.t.
empty
let empty: unit => Js.t({..});
empty()
returns the empty object {}
.
assign
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
.
RE/* 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);
keys
let keys: Js.t('a) => array(string);
keys(obj)
returns an array
of the keys of obj
's own enumerable properties.