Scala.js 是一個將 Scala 語言編譯成 JavaScript 的工具,旨在構建更健壯的前端 web 應用程序。0.6.29 版本包括:
用 SBT 1.x 對增量編譯中的主要錯誤進行修復
主要的性能改進,特別是在模式匹配方面
它還引入了 js.import(ModuleName),相當於 JavaScript 的動態 import() 調用。具體如下:
js.import( ) 動態導入
CMAScript 2020 將標準化動態導入,Scala.js 使用 js.import[A<:js.Any]() 方法添加對它們的支持,它返回一個 js.promisation[A],其中參數 A 是描述模塊 API 的 JS 特性。
import scala.scalajs.js trait FooAPI extends js.Any { def bar(x: Int): Int } val moduleName = "foo.js" val promise = js.`import`[FooAPI](moduleName) val future = promise.toFuture for (module <- future) { println(module.bar(5)) }
JDK 集合被重寫,不再依賴 Scala 集合
在 0.6.28 之前,幾個 JDK 集合(包括 java.util.HashMap、java.util.HashSet 和 java.util.TreeSet)都是在相應的 Scala 集合之上實現的(例如,Scala.Collection tion.immutable.HashMap),由於 JDK 集合和 Scala 集合之間的語義不匹配,導致效率問題。在 Scala.js 0.6.29 中,完全重新實現了所有這些集合,使 JDK 集合不再依賴 Scala 集合。
對 Unicode 資料庫進行了升級,使其與最新的 JDK 8 相匹配
以下 Unicode 字元現在已被 java.lang.Character 方法識別並正確分類:00BB,20BC 到 20BF 和 32FF。
該版本還帶來其他更改和修復,詳情見發布說明。
[admin
]