(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]))
有关 ClojureScript 1.10.844 中所有更新的完整列表,请参阅 更改.