我想编写一个包含defx
的DSL,它包装了本地def
并调用构造函数:
(defmacro defx [name & args]
`(def ~name (ctor ~@args)))
当我引用通过调用defx
定义的值(例如(defx somex 1 2 3) (println somex)
)时,ClojureScript会向WARNING: Use of undeclared Var somex
投诉。它在运行时工作正常,所以如何摆脱警告?
更新:我要求自1.9.198以来在cljs中支持:refer [defx]
的宏,但显然从1.9.293开始,仍然存在一些缺点。要求使用明确的:refer-macros
修复警告。