我想使用 clojure 规范来建立一组类型约束,这些约束可以被其他规范别名或进一步约束。
例如,我可能有许多字段都需要有效的清理降价。
以下示例适用于验证 ( s/valid?
) 但不适用于生成 ( gen/generate
)
(s/def ::sanitized-markdown string?)
(s/def ::instruction-list #(s/valid? ::sanitized-markdown %)) ;; works
(gen/generate (s/gen ::instruction-list)) ;; fails
但是(gen/generate (s/gen ::sanitized-markdown))
确实有效。
有没有办法扩展它以保留所有行为::instruction-list
?::sanitized-markdown