2

尽管它在 sbt 控制台中编译和运行。Intellij 抱怨我应该在编辑器中使用 Binding[Node] 而不是 Elem。

@dom def renderDiv: Binding[Div] = <div>...</div>

从 intellij IDEA 的角度来看,此方法返回 aElem的子类型scala.xml.Node,但在渲染时:

dom.render(document.getElementById("root"),renderDiv)

它需要一个org.scalajs.dom.raw.Node.

有什么解决方法吗?

4

1 回答 1

6

可以在范围内放置一个隐式转换 def:

package object xxx {
  implicit def makeIntellijHappy[T<:org.scalajs.dom.raw.Node](x: scala.xml.Node): Binding[T] =
    throw new AssertionError("This should never execute.")
}

在包对象中定义上面的方法,因此它涵盖了整个包。实际上,这个方法永远不会被执行。

于 2017-03-06T04:14:24.207 回答