【发布时间】:2014-10-24 06:08:50
【问题描述】:
关于使用Prismatic/schema 验证函数,我有一个非常简单的问题。我有一个映射的架构,它有一个键,它的值是一个函数,它以 Bar 架构作为其单个参数并返回任何内容(用于副作用):
(require '[schema.core :as s])
(def Bar {:baz s/Int})
(def Action :???)
(def Foo {:action Action})
问题是,我如何定义Action?我试过这个:
(require '[schema.macros :as sm])
(def Action (sm/=> s/Any Bar))
这看起来很有希望,但我不能让它验证失败:
(s/explain Action)
;=> (=> Any {:baz Int})
;; This should fail
(s/validate Foo {:action :anything-goes})
;=> {:action :anything-goes}
我在这里做错了什么?
【问题讨论】: