欢迎!请参阅关于页面了解更多关于如何使用本站的信息。
如在该线程中所述(https://groups.google.com/forum/#!topic/clojure/i8Rz-AnCoa8), `s/keys`并不验证其内提到的规格是有效的规格。
`
一个建议的解决方案是单独编写代码来检查注册表,并警告未声明的规格。该代码的草稿在https://gist.github.com/stuarthalloway/f4c4297d344651c99827769e1c3d34e9提供。
虽然一般方法不错,但我相信它不适用于包含“keys”规格的多规格。 `s/form`在多规格上返回规格是多规格(这是合理的),但没有方法可以让客户端访问挑选指定数据的方法规格的代码。
在上述记录中提供了另一个解决方案,但由于它依赖于 `resolve`,在Clojurescript上不会工作。
我认为 `s/form`在此案中表现正确,但有一个额外的功能将很有用,它可以根据多规格返回函数或数据,可以用来探索当前实现。