我正在尝试使用Navigator
属性扩展oscpu
。这个问题已经回答here,并且实施工作完全符合Justin du Coeur的建议。问题是,当我在Firefox以外的浏览器中执行代码时,我得到一个UndefinedBehaviorError
异常,这是合乎逻辑的,因为此属性仅存在于Firefox中。
但是,我只想使用Option
而不是接收例外。因此,如果它不存在,则为None
,如果存在,我将获得Some("OSCPU info")
。
我该如何使这项工作?我尝试了以下方法,但我不确定如何转换为Option
。
@js.native
trait OSCPUNavigator extends js.Object {
def oscpu: js.UndefOr[String] = js.native
}
implicit def toOSCPUNavigator(n: Navigator): OSCPUNavigator =
n.asInstanceOf[OSCPUNavigator]
答案 0 :(得分:3)
您可以使用js.UndefOr[A]
将Option[A]
转换为x.toOption
。
相反的转换也可以作为x.orUndefined
,但需要以下导入:
import scala.scalajs.js.JSConverters._
中有记录