Clojurescript高级编译无法访问代码

问题描述 投票:0回答:1

我刚刚在Clojurescript项目中添加了一个新库(https://github.com/ptaoussanis/tempura/blob/master/README.md)。

WARNING: /matter/titan/source/titan-ui/out/taoensso/tempura/impl.js:96: WARNING - unreachable code}catch (e20422){if((e20422 instanceof Error)){

我也收到此错误:

Use of undeclared Var goog.structs/Map
(def ^:private coerce-xhr-params "Returns [<uri> <?data>]"
(let [url-encode
(fn url-encode
([params]
(when (seq params)
(-> params clj->js gstructs/Map. gquery-data/createFromMap .toString)))
                   ^---
([uri params]
(let [qstr (url-encode params)
          uri-with-query (if (str/blank? qstr) uri (str uri "?" qstr))]
          [uri-with-query nil])))

我需要为此写一个“外部”吗?看起来像什么?

clojurescript
1个回答
0
投票

很难从您的代码和问题的细节中看出来,但我认为您在高级编译模式下调用库时遇到麻烦。

现代的简单方法是完全跳过外部事物,而只是不使用互操作形式而是通过使用https://github.com/binaryage/cljs-oops库来编写调用/获取。

然后,您将无需执行任何其他操作-默认情况下,所有代码都将在高级编译中保留下来,而无需外部操作!

例如(.-nativeProp obj)看起来像(oget obj "nativeProp"),并且ocall相应地用于函数调用。

© www.soinside.com 2019 - 2024. All rights reserved.