ReScriptJs
Bindings to the JS standard library
Goals
This is an alternative library to the default Js
module.
Main differences:
- Closer naming to the JS platform (e.g.
Object
vsObj
) - Type-first pipe
- Consistent naming accross the bindings
- Some missing data-structures (e.g.
Map
,WeakMap
,Set
,WeakSet
,BigInt
,Intl
) - A DX that overall looks more like JS (if you
open Js
, you should feel at home) - Simple bindings to
window
,document
andglobalThis
(they're basically typed as any)
Nearly all data structures maintain compatible types with the default Js
module.
Installation
Run the following in your console:
$ yarn add rescript-js
Then add rescript-js
to your bsconfig.json
's bs-dependencies
:
{
"bs-dependencies": [
+ "rescript-js"
]
}
If you want to exclusively use rescript-js
:
{
"bsc-flags": [
+ "-open ReScriptJs",
]
}
Usage
open ReScriptJs.Js
Console.log("Hello world!")
let timeout = setTimeout(() => {
Console.log("Hello!")
}, 100)
clearTimeout(timeout)
let array = [1, 2, 3]
let sum = array
->Array.map(x => x * 2)
->Array.reduce((acc, item) => acc + item, 0)
Available modules are listed in ReScriptJs.res