Skip to content

Instantly share code, notes, and snippets.

@OliverJAsh
Created August 20, 2016 17:22
Show Gist options
  • Save OliverJAsh/b20c894f831d0e01571eb5cfc44e1e21 to your computer and use it in GitHub Desktop.
Save OliverJAsh/b20c894f831d0e01571eb5cfc44e1e21 to your computer and use it in GitHub Desktop.
Option vs vanilla strict null checking
(() => {
const f = (c: number): Option<number> => c === 2 ? Some(c) : None
const add1 = (c: number): number => c + 1;
const maybeNumber = Option(1)
maybeNumber.flatMap(f).map(add1).getOrElse(5)
})()
(() => {
const f = (c: number): number | undefined => c === 2 ? c : undefined;
const add1 = (c: number): number => c + 1;
const maybeNumber: number | undefined = 1;
// flatMap
const a: number | undefined = maybeNumber !== undefined ? f(maybeNumber) : undefined;
// map
const b: number | undefined = a !== undefined ? add1(a) : undefined;
// getOrElse
const c: number = b !== undefined ? b : 5;
})()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment