使用 Binding.scala 宏注释时如何在编辑器中抑制 intellij IDEA 错误?
How to suppress intellij IDEA error in editor when using Binding.scala macro annotation?
尽管它在 sbt 控制台中编译和运行。
Intellij 抱怨我应该在编辑器中使用 Binding[Node] 而不是 Elem。
@dom def renderDiv: Binding[Div] = <div>...</div>
从intellij IDEA的角度来看,这个方法returns一个Elem
是scala.xml.Node
的一个子类型,
但是渲染时:
dom.render(document.getElementById("root"),renderDiv)
它需要 org.scalajs.dom.raw.Node
。
有什么解决方法吗?
可以在范围内放置一个隐式转换 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.")
}
在包对象中定义上面的方法,因此它覆盖了整个包。实际上,这个方法永远不会被执行。
尽管它在 sbt 控制台中编译和运行。 Intellij 抱怨我应该在编辑器中使用 Binding[Node] 而不是 Elem。
@dom def renderDiv: Binding[Div] = <div>...</div>
从intellij IDEA的角度来看,这个方法returns一个Elem
是scala.xml.Node
的一个子类型,
但是渲染时:
dom.render(document.getElementById("root"),renderDiv)
它需要 org.scalajs.dom.raw.Node
。
有什么解决方法吗?
可以在范围内放置一个隐式转换 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.")
}
在包对象中定义上面的方法,因此它覆盖了整个包。实际上,这个方法永远不会被执行。