Module Js.Nullable

Provide utilities around null_undefined

Contains functionality for dealing with values that can be both null and undefined

type +'a t

Local alias for 'a Js.null_undefined

val return : 'a -> 'a t

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

val isNullable : 'a t -> bool

Returns true if the given value is null or undefined, false otherwise

val null : 'a t

The null value of type 'a Js.null_undefined

val undefined : 'a t

The undefined value of type 'a Js.null_undefined

module Js := Js__.Js_internal
val bind : 'a t -> ('a -> 'b) Js.Fn.arity1 -> 'b t

Maps the contained value using the given function

If 'a Js.null_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.null_undefined

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

Iterates over the contained value with the given function

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

let maybeSay (maybeMessage: string Js.null_undefined) =
  Js.Null_undefined.iter maybeMessage (fun message -> Js.log message)
val fromOption : 'a option -> 'a t

Maps 'a option to 'a Js.null_undefined

Some a -> return a
None -> undefined
val from_opt : 'a option -> 'a t
  • deprecated Use fromOption instead
val toOption : 'a t -> 'a option

Maps 'a Js.null_undefined to 'a option

return a -> Some a
undefined -> None
null -> None
val to_opt : 'a t -> 'a option
  • deprecated Use toOption instead