【问题标题】:Scala.js convert Dynamic to scala typeScala.js 将 Dynamic 转换为 scala 类型
【发布时间】:2017-03-19 10:22:30
【问题描述】:

有没有办法将 js Dynaimc 类型转换为所需的 Scala 类型,如 String、Int、Double 或 BigDecimal?

查看source code,伴随对象中似乎没有办法执行这些操作。

【问题讨论】:

    标签: scala.js


    【解决方案1】:

    我明白了。您必须使用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]
    })
    

    【讨论】:

    • 正确 -- Scala.js,特别是 JavaScript 和 Scala 之间的接口,几乎是大量使用 isInstanceOf 完全正常和惯用的地方。这甚至是有道理的:编译器不知道实际类型是什么,所以你是根据外部知识来指导它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 2021-03-04
    • 2020-03-03
    • 2021-04-03
    • 2020-06-16
    • 1970-01-01
    • 2017-04-17
    相关资源
    最近更新 更多