代码之家  ›  专栏  ›  技术社区  ›  user79074

代表动态在一个对象或类中

  •  0
  • user79074  · 技术社区  · 7 年前

    假设我要生成以下javascript:

    var myObj = { x: 'a', y: 'b' }
    

    我可以打电话来js.Dynamic.literal文件:

    val myObj = js.Dynamic.literal(x = "a", y = "b")
    

    但我也可以在课堂上展示这类信息:

    @js.native
    object MyObj extends js.Object {
        val x = "a"
        val y = "b"
    }
    
    val myObj = MyObj
    

    但自从我升级到6.21之后,这会导致编译器警告:

    特征、类和对象的成员扩展任何仅限五月 包含调用js.本地. 这将在1.0中强制执行。

    val x=“一”

    ...

    我有没有办法继续这种方法?

    1 回复  |  直到 7 年前
        1
  •  0
  •   pme    7 年前

    我试着重做 Scalafiddle .

    异常看起来有点不同,但按照建议执行最终解决方案而不发出警告如下:

    import scala.scalajs.js.annotation.ScalaJSDefined
    
    @ScalaJSDefined
    object MyObj extends js.Object {
        val x = "a"
        val y = "b"
    }
    
    println(MyObj.x + MyObj.y)
    

    这里是 Scalafiddle .