在ClojureScript中可以避免名称变换以进行互操作吗?

时间:2016-02-18 05:58:57

标签: clojurescript

在高级编译中

(js/console.log "HELLO"
  js/window.navigator.msSaveBlob
  (.. js/window -navigator -msSaveBlob)
  (aget js/window "navigator" "msSaveBlob")
  js/console.log)

=> HELLO未定义的未定义函数函数

我认为这意味着js / console有一些提供的externs,但导航器没有(或者至少不是ms特定的东西)。

AFAIK避免这种情况的唯一方法是创建一些外部人员?但这似乎是不必要的迟钝;为什么你会想要js /任何东西?永远不会让js /任何互操作变得更有意义吗?

1 个答案:

答案 0 :(得分:0)

没有系统功能;只有你自己的功能。您可能想要(.log js/console ...)

要取消重置您自己的功能,请在^:export和功能名称之间放置defn以完整地导出其名称。

Here是更多信息。

所有人都会看到名为“munging”here的部分。