作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个我想从 JS 调用的 ScalaJS 函数,它有一个 Option[String] 参数。我不知道如何从 JS 创建 Some[String] 和 None[String]。
最佳答案
简短的回答:你不能。不过,您的问题有两种解决方案。
公开全局函数以构建 Some
s 和检索 None
(次优)
在 Scala.js 代码库中添加这样的对象:
package some.pack
@JSExport
object OptionFactory {
@JSExport
def none(): None.type = None
@JSExport
def some[A](value: A): Some[A] = Some(value)
}
var none = some.pack.OptionFactory.none()
var some = some.pack.OptionFactory.some(5)
js.UndefOr
(受到推崇的)
Option
s,您可以直接从您的 Scala.js 类公开一个对 JS 友好的 API。假设您要公开的函数类似于:
def foo(opt: Option[Int]): Unit = ???
@JSExport
def foo(opt: js.UndefOr[Int]): Unit = foo(opt.toOption)
undefined
为
None
以及
Some[Int]
的任何整数,例如:
scalaJSObj.foo(undefined)
scalaJSObj.foo(5)
关于scala.js - ScalaJS : How to create Option[A] from JS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33056676/
我是一名优秀的程序员,十分优秀!