2017-03-06 9 views
2

コンパイルしても、sbtコンソールで実行されます。 IntellijはエディタでElemの代わりにBinding [Node]を使用する必要があると文句を言います。Binding.scalaマクロアノテーションを使用しているときにintellij IDEAエラーをエディタで抑制する方法は?

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

のIntelliJ IDEAの観点から、この方法は、scala.xml.NodeのサブタイプであるElemを返し が、レンダリング時:

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

をそれがorg.scalajs.dom.raw.Nodeが必要です。

この問題を回避する方法はありますか?

答えて

5

スコープに暗黙変換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.") 
} 

は、このように、それはパッケージ全体を覆って、パッケージオブジェクトに上記の方法を定義します。このメソッドは実際には実行されません。

関連する問題