Scala.js 导出摘要 val/var

Scala.js exporting abstract val/var

似乎用这样的后代导出摘要 val/var 不起作用:

@JSExportDescendentObjects
trait T {
  @JSExport
  val i: Int
  @JSExport
  var j: Int
}

class A extends T {
  val i = 5
  var j = 10
}

我收到警告 no valid targets for annotation on value i - it is discarded unused 并且 Aij 在 Javascript 中看不到。但是,可以通过 @JSExportAll:

导出它们
@JSExportDescendentObjects
@JSExportAll
trait T {
  val i: Int
  var j: Int
}

class A extends T {
  val i = 5
  var j = 10
}

现在很好,没有警告,ij 从 JS 中可见。

defs 没有这样的问题。为什么会这样以及如何有选择地导出摘要 val/var?

这是 a bug Scala.js <= 0.6.10。升级到 Scala.js 0.6.11 应该可以解决您的问题。