scala.js - scalajs:使用 js.Dynamic.literal 调用 javascript 函数可以工作,但不能使用 js.Object
问题描述
我正在为一个需要对象参数的函数编写一个 scalajs 外观。简化,它看起来像这样:
通知.js
function notification(options) {
console.log("options", options);
}
例子.scala:
import scala.scalajs.js
class Options(val message: String, val timeout: js.UndefOr[Int] = js.undefined) extends js.Object
@js.native
@js.annotation.JSGlobalScope
object DOMGlobalScope extends js.Object {
def notification(options: js.Object): Unit = js.native
}
DOMGlobalScope.notification(js.Dynamic.literal(message = "hello", timeout = 100))
// the browser prints: options {timeout: 100}
DOMGlobalScope.notification(new Options(message = "hello", timeout = 100))
// the browser prints: options a {timeout: 100} << what is this a?
我正在立面的图书馆,如果我使用它可以工作js.Dynamic.literal
,但如果我使用它就不行new Options
。这与那个有关a
吗?
我该如何解决这个问题?
而且,为什么我不能使用案例类选项?
解决方案
推荐阅读
- flask - 无法在烧瓶应用程序中将 javascript 文件加载到 HTML 中
- javascript - html5视频结束画面(youtube风格)
- python - 您将如何检测用户输入是否在字典中?
- java - JMeter,线程组之间传值
- node.js - 从 mongo 向 find() 添加字段后无法检索数据
- algorithm - 寻找 Apple Watch 气泡坐标的算法
- node.js - 如何通过 HTML(脚本标签)获取 Electron 应用程序对象?
- python - 如何将一个熊猫文本列拆分为固定数量的列
- reactjs - 如何在 React Hook Form v7 中使用单选按钮?
- mongodb - 执行 $map 后,如何在 $addFields 阶段将 $toObjectId 用于 id 数组?