方差 js.Array
Variance with js.Array
我有一个 javascript 方法接受 js.Arrays 可以包含多种类型的对象。例如 js.Dates 或整数或字符串
如何在不必转换任何这些类型的情况下对其进行建模。
def domain(p: js.Array[js.Any])
不适用于
domain(js.Array(new js.Date(2015,1,1))
因为 js.Array 是不变的。
def domain[T <: js.Any](p: js.Array[T])
不适用于
domain(js.Array("Test")) or domain(js.Array(0,2))
因为 String 和 Int 不继承自 js.Any。
我已经看到有一个从 Int 到 js.Any 的隐式转换,但这似乎并没有启动
inferred type arguments [Int] do not conform to method domain's type
parameter bounds [T <: scala.scalajs.js.Any]
反正我是有点纳闷。 Intellij 没有向我显示错误,而来自 sbt 的 fastOptJS 抛出编译错误。
找到解决方案。上视图边界:
def domain[T <% js.Any](p: js.Array[T])
我有一个 javascript 方法接受 js.Arrays 可以包含多种类型的对象。例如 js.Dates 或整数或字符串
如何在不必转换任何这些类型的情况下对其进行建模。
def domain(p: js.Array[js.Any])
不适用于
domain(js.Array(new js.Date(2015,1,1))
因为 js.Array 是不变的。
def domain[T <: js.Any](p: js.Array[T])
不适用于
domain(js.Array("Test")) or domain(js.Array(0,2))
因为 String 和 Int 不继承自 js.Any。 我已经看到有一个从 Int 到 js.Any 的隐式转换,但这似乎并没有启动
inferred type arguments [Int] do not conform to method domain's type
parameter bounds [T <: scala.scalajs.js.Any]
反正我是有点纳闷。 Intellij 没有向我显示错误,而来自 sbt 的 fastOptJS 抛出编译错误。
找到解决方案。上视图边界:
def domain[T <% js.Any](p: js.Array[T])