我试图在变量上设置一些 arglists 元数据。但是当访问元数据时,参数列表不会被保留。
tmp ❯❯❯ clj -A:cljs -m cljs.main -re node -r
ClojureScript 1.10.773
cljs.user=> (def ^{:arglists '[[x]]} thing 3)
#'cljs.user/thing
cljs.user=> (:arglists (meta #'thing))
()
在 clojure 中则会保留
tmp ❯❯❯ clj
Clojure 1.10.1
user=> (def ^{:arglists '[[x]]} thing 3)
#'user/thing
user=> (:arglists (meta #'thing))
[[x]]
在 cljs 中也会保留非 arglists 元数据
cljs.user=> (def ^{:foo '[[x]]} thing 3)
#'cljs.user/thing
cljs.user=> (:foo (meta #'thing))
(quote [[x]])
不确定这是否是由于 ClojureScript 中 "变量" 的独特性质而必要的行为,还是只是一个错误。
编辑
似乎是一个错误。Jira 问题追踪单: https://clojure.atlassian.net/browse/CLJS-3277