说我想生成以下javascript:
var myObj = { x: 'a', y: 'b' }
我可以通过调用js.Dynamic.literal来做到这一点:
val myObj = js.Dynamic.literal(x = "a", y = "b")
但是我也可以在一个类中表示这种信息:
@js.native
object MyObj extends js.Object {
val x = "a"
val y = "b"
}
val myObj = MyObj
但是自从我升级到6.21以来,这会导致编译器警告:
扩展js的特征,类和对象的成员。 包含调用js.native的成员。这将在1.0中强制执行。
val x =“ a”
...
我可以继续这种方法吗?
答案 0 :(得分:0)
我尝试在Scalafiddle上重做。
该异常看起来有些不同,但是按照建议进行操作,没有警告的最终解决方案看起来像这样:
import scala.scalajs.js.annotation.ScalaJSDefined
@ScalaJSDefined
object MyObj extends js.Object {
val x = "a"
val y = "b"
}
println(MyObj.x + MyObj.y)