如果使用 CLJC 并且 ClojureScript 编译器看到 Clojure 类型注解,它应该有效地忽略那些没有可移植性问题的注解。
这个工单的具体案例是 {{^int}} 和算术,一个促使例子是
cljs.user=> (let [^int v (alength (into-array []))] (+ v 3))
WARNING: cljs.core/+, 所有参数必须是数字,但得到 [int number]。在行 1 <cljs repl>
3
另一方面,{{^long}} 由于它不是 {{^number}} 的“子类型”,因此仍然应发出警告(这种代码可能会溢出,在这种情况下警告很有帮助)。