Simply get rid of all nulls in your code.
This is a clone of Scala's Option class to be used with flow.js.
// @flow
let valueA = Option.of(null).map(x => x + 2).getOrElse(() => 0);
// valueA = 0
let valueB = Some('any object').flatMap(x => Some(`${x}!!!`)).getOrUndefined();
// valueB = 'any object!!!'
let valueC = Some(null).flatMap(() => Option.of(2)).map(x => x * 3).getOrElse(() => 0);
// valueC = 6
let valueD = Some(1).mapNullable(() => null).getOrReturn(-1);
// valueD = -1
Some(1).equals(Some(1))
// true
None.equals(None)
// true
Some('abc').equals(None)
// false
None.isDefined; // false
Some(1).isDefined; // true
Some(1).isEmpty; // false
Some(null).isEmpty; // false! Option<null> is valid!
Some('foo').get(); // 'foo'
None.get(); // throws an error, use getOrElse or getOrUndefined instead
Some(3).filter(x => x % 2 === 0); // None
Some('bar').forEach(x => {
console.log(`my value: ${x}`);
});
Represents optional values. Instances of Option are either an instance of Some or the object None.
$privateToken
any
Returns the option's value.
Type: function (): A
Returns true if the option is None, false otherwise.
Type: boolean
Returns true if the option is an instance of Some, false otherwise.
Type: boolean
Returns boolean
Returns a Some containing the result of applying f to this Option's value if this Option is nonempty.
f
function (A): B
Returns Option<B>
Like map, but if resulting value is null, then returns None.
f
function (A): B?
Returns Option<B>
Returns the result of applying f to this Option's value if this Option is nonempty. Returns None if this Option is empty. Slightly different from map in that f is expected to return an Option (which could be None).
f
function (A): Option<B>
Returns Option<B>
Apply the given procedure f to the option's value, if it is nonempty.
f
function (A): any
Returns void
Returns this Option if it is nonempty and applying the predicate to this Option's value returns true.
predicate
function (A): boolean
Returns Option<A>
Returns the option's value if the option is nonempty, otherwise return the result of evaluating other.
other
function (): B
Returns (A | B)
Returns the option's value if the option is nonempty, otherwise return other.
other
B
Returns (A | B)
Returns the option's value if the option is nonempty, otherwise returns undefined.
Returns (A | void)
Compares the option's value with other option's value and returns true when they match. None always matches other None.
other
Option<B>
Returns boolean
Returns value if present, null otherwise. If value contains a method toJSON
,
returns the result of method call.
Returns any
An Option factory which creates Some(x) if the argument is not null, and None if it is null.
value
V??
Returns Option<V>
The empty None object
Type: Option<any>
Creates Some(x). Note that Some(null) is valid.
Type: function (value: A): Option<A>
The empty None object.
Type: Option<any>
Creates Some(x). Note that Some(null) is valid.
value
A
Returns Option<A>