2017-04-13 35 views

回答

0

我一般upickle使用,我绕到方式是通过在共享项目中 即

case class Foo[S[_]](var id : Long, var title: S[String]) 
Scala的JVM

我腌的情况下类作为形式的对象使用泛型

Foo(id, Seq(title1, title2, ...)) 

它是Foo[Seq]类型的对象和在阶JS我酸洗对象作为 Foo[js.Array]

0

在Scala.js-唯一项目,一个只会做到以下几点:

case class Foo(var id: Long, var title: Seq[String]) { 
    @JSExport("title") 
    protected def jsTitle: js.Array[String] = 
    title.toJSArray 

    @JSExport("title") 
    protected def jsTitle_=(v: js.Array[string]): Unit = 
    title = v.toSeq 
} 

然而,这将拒绝共享源编译,因为Scala/JVM不知道js.Array

恐怕没有可以解决您问题的免费样板解决方案。最简单的解决方案是在项目的JVM和JS部分分别声明Foo。然后您仍然可以从共享源使用它。

相关问题