将JavaScript的数字转换为Scala的Double

时间:2016-01-05 14:45:15

标签: scala.js

如何将无效js.Dynamic的实例(我知道是JavaScript number)转换为Scala Double类型?

背景:我有一个js库,它周围没有Scala.js包装器。它发送某些事件,我想在Scala代码中使用这些事件的数据,我需要正确输入。

到目前为止,我完成的工作如下:首先是number到Scala StringStringDouble

map.addListener("click", {(e: js.Dynamic) => {
      val c = map.pixelToGeo(e.displayX, e.displayY)
      GenerateSampleData.mapClickCoord() = 
        Coordinate(
          String.valueOf(c.latitude).toDouble,
          String.valueOf(c.longitude).toDouble)
    }})

它有效,但我觉得它看起来很难看,而且必须有更好的方法。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

如果我错了,@ sjrd会纠正我,但我相信Scala的Double 是一个JS编号。因此,如果您确信c.latitude是一个数字,我相信您可以简单地说:

c.latitude.asInstanceOf[Double]