我的理解是,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规范。
但是,假设由于开发人员的误解,添加了一个与Person定义无关的另一个键,现在哈希图是
{:name "John"
:age 25
:voltage 220}
然而它还是会符合规范。但我希望它失败!
有没有简单的方法可以让spec/keys拒绝一个既不是req也不是opt的键的哈希图?