"find"、"each" 方法抛出类型不匹配错误
"find", "each" method throw type mismatch error
我正在尝试使用 val x = $(selectState).find("option").each((y: Element) => y)
迭代选项。但是编译抛出以下错误。
type mismatch;
found : org.scalajs.dom.Element => org.scalajs.dom.Element
(which expands to) org.scalajs.dom.raw.Element => org.scalajs.dom.raw.Element
required: scala.scalajs.js.|[scala.scalajs.js.ThisFunction0[org.scalajs.dom.Element,Any],scala.scalajs.js.ThisFunction1[org.scalajs.dom.Element,Int,Any]]
(which expands to) scala.scalajs.js.|[scala.scalajs.js.ThisFunction0[org.scalajs.dom.raw.Element,Any],scala.scalajs.js.ThisFunction1[org.scalajs.dom.raw.Element,Int,Any]]
我指的是堆栈溢出问题 。
好的,正式回答这个问题:是的,那是 jquery-facade 中的一个错误。感谢您指出!
正如我所怀疑的那样,问题是 |
类型运算符干扰了编译器自动将 Scala 函数转换为 JavaScript 函数的能力。所以它不理解 (y: Element) => y
(Scala 函数)可以变成 JavaScript js.Function0[Element, Any].
所以我将 each
拆分为两个单独的重载,每个版本一个,这似乎可以按预期工作。请更新到 jquery-facade 1.0-RC3,我认为它应该适合你。
我正在尝试使用 val x = $(selectState).find("option").each((y: Element) => y)
迭代选项。但是编译抛出以下错误。
type mismatch;
found : org.scalajs.dom.Element => org.scalajs.dom.Element
(which expands to) org.scalajs.dom.raw.Element => org.scalajs.dom.raw.Element
required: scala.scalajs.js.|[scala.scalajs.js.ThisFunction0[org.scalajs.dom.Element,Any],scala.scalajs.js.ThisFunction1[org.scalajs.dom.Element,Int,Any]]
(which expands to) scala.scalajs.js.|[scala.scalajs.js.ThisFunction0[org.scalajs.dom.raw.Element,Any],scala.scalajs.js.ThisFunction1[org.scalajs.dom.raw.Element,Int,Any]]
我指的是堆栈溢出问题
好的,正式回答这个问题:是的,那是 jquery-facade 中的一个错误。感谢您指出!
正如我所怀疑的那样,问题是 |
类型运算符干扰了编译器自动将 Scala 函数转换为 JavaScript 函数的能力。所以它不理解 (y: Element) => y
(Scala 函数)可以变成 JavaScript js.Function0[Element, Any].
所以我将 each
拆分为两个单独的重载,每个版本一个,这似乎可以按预期工作。请更新到 jquery-facade 1.0-RC3,我认为它应该适合你。