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

“find”、“each”方法引发类型不匹配错误

  •  1
  • Bhagyashree  · 技术社区  · 9 年前

    我正在尝试使用 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]]
    

    我指的是堆栈溢出问题 here .

    1 回复  |  直到 7 年前
        1
  •  0
  •   Justin du Coeur    9 年前

    好吧,正式回答这个问题:是的,这是jquery facade中的一个bug。谢谢你指出这一点!

    正如我所怀疑的,问题是 | type运算符会干扰编译器自动将Scala函数转换为JavaScript函数的能力。所以我不明白 (y: Element) => y (Scala函数)可以转换为JavaScript js。函数0[元素,任意]。

    所以我分手了 each 分为两个单独的重载,每个版本一个,并且看起来可以按需要工作。请更新到jquery facade 1.0-RC3,我认为它应该适合您。