在高级编译中
(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 /任何互操作变得更有意义吗?