Module Js.Undefined

Provide utilities around undefined

Provides functionality for dealing with the 'a Js.undefined type

type t(+'a);

Local alias for 'a Js.undefined

module Js := Js__.Js_internal
let return: 'a => t('a);

Constructs a value of 'a Js.undefined containing a value of 'a

let test: t('a) => bool;

Returns true if the given value is empty (undefined), false otherwise

  • deprecated Use = Js.undefined directly
let testAny: 'a => bool;
  • since 1.6.1

Returns true if the given value is empty (undefined)

let empty: t('a);

The empty value, undefined

let getUnsafe: t('a) => 'a;
let getExn: t('a) => 'a;
let bind: t('a) => Js.Fn.arity1(('a => 'b)) => t('b);

Maps the contained value using the given function

If 'a Js.undefined contains a value, that value is unwrapped, mapped to a 'b using the given function a' -> 'b, then wrapped back up and returned as 'b Js.undefined

let maybeGreetWorld (maybeGreeting: string Js.undefined) =
  Js.Undefined.bind maybeGreeting (fun greeting -> greeting ^ " world!")
let iter: t('a) => Js.Fn.arity1(('a => unit)) => unit;

Iterates over the contained value with the given function

If 'a Js.undefined contains a value, that value is unwrapped and applied to the given function.

let maybeSay (maybeMessage: string Js.undefined) =
  Js.Undefined.iter maybeMessage (fun message -> Js.log message)
let fromOption: option('a) => t('a);

Maps 'a option to 'a Js.undefined

Some a -> return a
None -> empty
let from_opt: option('a) => t('a);
  • deprecated Use fromOption instead
let toOption: t('a) => option('a);

Maps 'a Js.undefined to 'a option

return a -> Some a
empty -> None
let to_opt: t('a) => option('a);
  • deprecated use toOption instead