我的理解是,spec/keys用于验证哈希表中的特定键。然而,我还需要它拒绝包含不在:req和:opt中的键的哈希表。
为了做一个虚构的例子,假设我有一个表示人的edn定义:
{:name "John"
:age 25}
规范可能是:
(spec/def ::name string?)
(spec/def ::age int?)
(spec/def ::person (spec/keys :req-un [::name ::age]))
上述定义符合此::person规范。
然而,假设由于开发者的混淆,添加了与人的定义无关的另一个键,哈希表现在变为:
{:name "John"
:age 25
:voltage 220}
这将仍然符合规范。但我想让它失败!
是否有简单的方法可以使spec/keys拒绝具有不介于req或opt中的键的哈希表?