鉴于pseudo-union type in Scala.js,如何将其折叠为public int? UserUserId{get;set;}
public virtual User User{get;set;}
(或副产品)?
答案 0 :(得分:3)
如果你正在寻找一个功能toEither[A, B](union: A | B): Either[A, B]
,那你就不走运了。最简单的方法是注意它必须适用于A
和B
的任何选项,所以如果我将它们专门用于Unit
toEither[A, B](union: A | B ): Either[A, B]
toEither (union: Unit | Unit): Either[Unit, Unit]
toEither (union: Unit ): Either[Unit, Unit]
很明显,任何这样的函数都需要做出任意选择,因此不存在这样的函数。与其他类型C
和A = B = C
一起尝试此练习。
通常,当您认识到某些Javascript函数采用多种不同类型的值并在运行时区分它们时,联合类型很方便,但它们也不如Either
那么有用。
通常,函数toUnion[A, B](eit: Either[A, B]): A | B
正在做一件事:“忘记”值是否为“左”或“右”进入未分化联合。随着这些信息被破坏,你可以减少前进的选择。