An implementation of the option type, sometimes known as the maybe type.
An instance of an option type is an optional value. Either it's none, or an
instance of Some:
var option = require("option"); var some = option.some("Bob"); var none = option.none;
A function that returns an optional string isn't that different from a function
that returns a string or null. The advantage over null is that options
provide a number of functions that help with manipulating optional values.
function greet(user) { return "Hello " + user.name().valueOrElse("Anonymous"); }
Methods
isNone() and isSome()
some(value).isNone()returnsfalsesome(value).isSome()returnstruenone.isNone()returnstruenone.isSome()returnsfalse
value()
some(value).value()returnsvaluenone.value()throws an error
map(func)
some(value).map(func)returnssome(func(value))none.map(func)returnsnone
flatMap(func)
some(value).flatMap(func)returnsfunc(value)none.flatMap(func)returnsnone
toArray()
some(value).toArray()returns[some]none.toArray()returns[]
orElse(other)
If other is a function (other conventionally returning another option):
some(value).orElse(other)returnssome(value)none.orElse(other)returnsother()
If other is not a function (other conventionally being another option):
some(value).orElse(other)returnssome(value)none.orElse(other)returnsother
valueOrElse(other)
If other is a function:
some(value).valueOrElse(other)returnsvaluenone.valueOrElse(other)returnsother()
If other is not a function:
some(value).valueOrElse(other)returnsvaluenone.valueOrElse(other)returnsother
Functions
option.isOption(value)
option.isOption(value)returnstrueifvalueisoption.noneoroption.some(x).
option.fromNullable(value)
- If
valueisnullorundefined,option.fromNullable(value)returnsoption.none. - Otherwise, returns
option.some(value). For instance,option.fromNullable(5)returnsoption.some(5).