我想创建一个类似于 spec/keys 的规范,但只允许在 req-un 和 opt-un 中的键。
有人告诉我没有简单的方法使用 clojure.spec.alpha 来做到这一点,我需要添加一个 s/and 与一个函数来检查指定的键是否存在于 req-un 和 opt-un 中。
我的计划是使用 spec/keys 已定义的规范简单地创建另一个规范,因为在我看来,在一个单一规范中定义规范是详尽的不可能。所以我想要类似以下内容
(spec/def ::person (spec/keys :req-un [::name ::age]))
(spec/def ::person-exhaustive (s/and ::person #(only-allowed-keys %))
然而,这对我不太清楚如何做,我注意到一个 spec/form 函数,它将规范作为数据返回,但由于它是一个 Cons,似乎使用起来很繁琐。有没有更好的方法从规范中获取这些数据?