欢迎!请参阅关于页面了解更多此工作的信息。
在ClojureScript 1.10.844之前,我可以通过以下方式可靠地判断符号sym(在宏展开时间)是否指的是一个协议:
sym
(:protocol-symbol (cljs.analyzer.api/resolve &env sym))
从CLJS-3276提交起,这在我的代码中不再起作用。据我所知,defprotocol仍然附加此数据,并且cljs.core 仍然内部使用这种方法。有没有更好的或者受支持的检测一个符号是否指向协议的方法?我非常希望能够重新引入此行为,或者有其他可靠的检测方法。
defprotocol
我很好奇你为什么需要问这个问题?