CLJS: CompilerException java.lang.RuntimeException: Feature 应该是关键字

CLJS: CompilerException java.lang.RuntimeException: Feature should be a keyword

每当我在 .cljc 文件中有这样的代码时,我都会收到此错误。我搜索时没有找到任何答案。

(defn foo
  []
  #?(:cljs
      (f "1")
      (g "2")))

我发现在#?(:cljs ...)#?(:clj ...)中我们只能指定一种形式。

因此,对于多个函数,我们可以使用 do 例如。

(defn foo
  []
  #?(:cljs
      (do (f "1")
          (g "2")))

编辑:9/3/21

不仅适用于函数,更普遍地适用于表单

例如。 (不起作用)

(try
  (something...)
  (catch #(:clj Exception e (error-stuff...)
         #(:cljs :default e (error-stuff...)

应该是

(try
  (something...)
  #(:clj (catch Exception e (clj-error-stuff e)))
  #(:cljs (catch :default e (cljs-errors-stuff e)))