clojurescript - Clojurescript 高级编译无法访问的代码
问题描述
我刚刚在我的 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])))
我需要为此写一个“外部”吗?那看起来像什么?
解决方案
从您的代码和问题详细信息中很难分辨,但我假设您在高级编译模式下调用库时遇到问题。
现代简单的方法是完全跳过 externs 的事情,只编写调用/获取而不是互操作形式,而是使用https://github.com/binaryage/cljs-oops
库。
那时您无需做任何其他事情 - 默认情况下,您的所有代码都将在高级编译中幸存下来,不需要外部!
eg(.-nativeProp obj)
看起来像(oget obj "nativeProp")
, 并ocall
相应地用于函数调用。
推荐阅读
- java - Java 7 handshake_failure 充气城堡
- php - 我的表单不会将信息发送到我的数据库 [PHP]
- visual-studio-code - 在 vs 代码用户片段中大写父目录的名称
- c# - Unity 中的 C# 脚本出错。图像效果
- html - CSS - 第一个子伪元素不起作用
- amazon-web-services - 有没有办法确定用户正在使用哪些 aws 服务?
- python - 有效地从 Pandas 数据框中删除所有零
- powershell - Github actions: set environment variable for Windows build with PowerShell
- asynchronous - 有人可以向我解释一下什么是事件驱动、异步、非阻塞 I/O
- javascript - 缩放和平移后fabricJS中的对象对齐