欢迎!有关这部分是如何工作的更多信息,请参阅关于页面。
在 Clojurescript 1.10.844 及之前,我可以通过检查以下内容来可靠地判断符号 sym(在宏展开时)是否指代协议:
sym
(:protocol-symbol (cljs.analyzer.api/resolve &env sym))
自CLJS-3276 提交以来,这种方法在我代码中不再有效。据我所知,defprotocol 仍然附加了这个数据,而 cljs.core 也是如此内部使用这种方法。是否有更好的/支持的检测符号是否引用协议的方法?我非常希望这种行为会被重新引入,否则希望有其他可靠的方法。
defprotocol
我想知道你为什么提出这个问题?