Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

For the typescript world, there is neverthrow[0] which offers a similar Result type.

[0]: https://github.com/supermacro/neverthrow



  Promise<Result<number, string>>
everywhere or

  type EitherT[F[_], E, A] = F[Either[E, A]]
and then

  def dosomething(): F[String, Number]
?

Isn't this beautiful: https://github.com/7mind/distage-example/blob/develop/bifunc... ?


Why does it have Either? Doesn't TypeScript have "A | B" style sum types?


Either is biased, union is not.

Probably we should say "union" instead of sum, as typescript unions are not discriminated. string | string in typescript is exactly the same as just string, while Either[String, String] is a type which is exactly a sum of two string types. Plus Either is biased towards R, the happy path value.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: