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");
}some(value).isNone()returnsfalsesome(value).isSome()returnstruenone.isNone()returnstruenone.isSome()returnsfalse
some(value).value()returnsvaluenone.value()throws an error
some(value).map(func)returnssome(func(value))none.map(func)returnsnone
Conventionally used when func returns another option.
some(value).flatMap(func)returnsfunc(value)none.flatMap(func)returnsnone
some(value).filter(predicate)returns:some(value)ifpredicate(value) === truenoneifpredicate(value) === false
none.filter(predicate)returnsnone
some(value).toArray()returns[some]none.toArray()returns[]
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
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
option.isOption(value)returnstrueifvalueisoption.noneoroption.some(x).
- If
valueisnullorundefined,option.fromNullable(value)returnsoption.none. - Otherwise, returns
option.some(value). For instance,option.fromNullable(5)returnsoption.some(5).
npm install option