(ns foo
(:require [npm-lib$SubLib :as sub-lib :refer [...]]))
2021年4月6日
ClojureScriptチーム
ClojureScriptの新しいリリースを発表できることを嬉しく思います。ClojureScriptの既存ユーザーの方は、以下のリリースノートをよくお読みください。
Closure Compilerがv20210302に更新されました。
Closure Libraryが0.0-20201211-3e6c510dに更新されました。
最新のClosure Libraryリリースには、コードに影響を与える可能性のある破壊的変更が含まれていることに注意してください。
goog.debug.Logger.Levelがgoog.Logger.Levelに名前変更され、goog.log.Level/getLogger関数は追加の引数をとるようになりました。
次のJavaScript型チェック述語が削除されました:goog/isString、goog/isArray、goog/isFunction、goog/isNumber、goog/isBoolean。
Closure名前空間のロードロジックが改訂されたため、一部のREPLを更新する必要があります。
JavaScriptオブジェクトとして公開されているJavaScriptライブラリを使用する場合、このオブジェクトのプロパティをClojureScriptのファーストクラス名前空間として指定できるようになりました。これを行うには、$デリミタを使用します。
たとえば、npm-libによって提供されるライブラリオブジェクトのSubLibプロパティは、次のように名前空間として扱うことができます。
(ns foo
(:require [npm-lib$SubLib :as sub-lib :refer [...]]))
必要に応じて、文字列ベースのrequireも使用できます。
(ns foo
(:require ["@npm/lib$SubLib" :as sub-lib :refer [...]]))
この機能は、defaultエクスポートへのアクセスにも使用できます。
(ns foo
(:require [npm-lib$default :as npm-lib :refer [...]]))
$デリミタは最上位のオブジェクトプロパティへのアクセスにのみ必要です。ネストされたプロパティは、次の例のように.を使用してアクセスします。
(ns foo
(:require [react-native$NativeModules.SomeBridge :as woz]))
cljs.testにおける正確なファイル名と行番号do-reportでコールスタックからファイル名と行番号を不正確に推論する代わりに、メタデータに基づいてマクロ展開中にそれらがキャプチャされるようになりました。
sortとsort-byはメタデータを保持するこの簡単な変更により、sortとsort-byがClojureと一貫性を持つようになりました。たとえば、以下は{:a true}と評価されます。
(meta (sort (with-meta (range 10) {:a true})))
ClojureScript 1.10.844のすべての更新の完全なリストについては、変更ログを参照してください。