【发布时间】:2017-03-19 10:22:30
【问题描述】:
有没有办法将 js Dynaimc 类型转换为所需的 Scala 类型,如 String、Int、Double 或 BigDecimal?
查看source code,伴随对象中似乎没有办法执行这些操作。
【问题讨论】:
标签: scala.js
有没有办法将 js Dynaimc 类型转换为所需的 Scala 类型,如 String、Int、Double 或 BigDecimal?
查看source code,伴随对象中似乎没有办法执行这些操作。
【问题讨论】:
标签: scala.js
我明白了。您必须使用asInstanceOf[T]。
例如
如果您有一些名为 data 的对象,其 id 为 Int,名称为 String
val myPromise = $.ajax(url)
myPromise.done((data: js.Dynamic, textStatus: String, jqXHr: JQueryXHR) => {
val id = data.id.asInstanceOf[Int]
val name = data.name.asInstanceOf[String]
})
【讨论】:
isInstanceOf 完全正常和惯用的地方。这甚至是有道理的:编译器不知道实际类型是什么,所以你是根据外部知识来指导它。