19
Option<T> in JavaScript

Option Type in JavaScript

Embed Size (px)

Citation preview

Option<T> in JavaScript

How do we represent “there is no value”

in JavaScript?

• object: there is null :)

• string: “” ?

• number: Use ‘-1’ ?

• boolean: true, false?

How do we resolve? Use a magic number?

No

Use Maybe monad

※あ、モナドの話は しません

Maybe / Option<T>

•Some<T> •None<T>

But JavaScript don’t have it :(

Do It Myself

option-t

option-t

• npm package

• compatible with TypeScript

• APIs are inspired by Rust

• JSON serializable

• Our product is dogfooding now!

• Full tested!

Type System (TypeScript)

interface Option<T>

Some<T> None<T>

Type System (ECMA262)

OptionT

Some None

__proto__

Instance methods

•isSome/isNone

•map

•flatMap

•unwrap

•and/or

from Sync to Async

OptionT.asPromise().then((val) => { doSomething(val);})

Future Work

• Perf optimization

• More dogfooding

無料option-tのダウンロード

あなたとoption-t今すぐダウンロー

npm install option-t