書いてみた。 使い方↓ Optional(x).map(i => i + 100).getOrElse(0) Optional(x).exists(i => i % 2 == 0) (Optionは予約されてて使えなかったのでOptionalに) もうほとんどScalaじゃ...! TryとかEitherならすぐ書けそうだけどリスト周り書き出すとしんどそう... TypeScript結構いいっぽい。coffeeも試してみたいけど型が... class OptionT<A> { isEmpty: boolean get: () => A map<B>(f: (a: A) => B): OptionT<B> { return this.isEmpty ? new None : new Some(f(this.get())) } flatMap<B>(f: (a: A) => OptionT<B