gpt4 book ai didi

scala - 在 ScalaJS 中导出伴随对象方法?

转载 作者:行者123 更新时间:2023-12-04 17:59:53 27 4
gpt4 key购买 nike

在使用 ScalaJS 时,我可以像这样导出一个对象和所有成员

@JSExport object Thing {
@JSExport def doThing(x:Int) = x * 2
}

但是当创建伴生对象时,ScalaJS 不再出现导出方法。

@JSExport @JSExportAll case class Thing(x:Int)

@JSExport object Thing {
@JSExport def fromNumber(x:Int) = Thing(x)
}

在这个例子中,我现在有了可以通过调用 Thing(n) 实例化的 Javascript 类,但似乎没有任何可用的方法 Thing.fromNumber

这在 ScalaJS 中可行吗?

(注意:当前使用“ScalaJS 0.6.8”与“Scala 2.11.8”和“SBT 0.13.9”)

最佳答案

导出时必须为伴生对象指定另一个名称:

@JSExport @JSExportAll case class Thing(x:Int)

@JSExport("ThingOps")
object Thing {
@JSExport def fromNumber(x:Int) = Thing(x)
}

现在调用 ThingOps().fromNumber(1)

您要求的是静态方法。 Scala.js 目前不支持这些(参见 #1902 )。

关于scala - 在 ScalaJS 中导出伴随对象方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36785695/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com