如何確保Clojure的/ cljs.spec被驗證函數調用參數和返回值?如何「打開」 cljs.spec
說我有這個功能:
(defn my-inc [x]
(inc x))
後,我有這樣的:
(s/fdef my-inc
:args (s/cat :x number?)
:ret number?)
此代碼編譯,因爲[cljs.spec.alpha :as s]
已要求。
現在我所說的功能,從而有望產生錯誤:
(my-inc "Not a number")
我想看到正在使用的fdef
,並看到錯誤消息指出my-inc
不能用字符串被調用。我如何以非常一般的方式實現這一點,例如在project.clj
或user.cljs
的設置中?
我試圖把'(S /儀器)'在該命名空間的頂部,但'cljs.spec.alpha/instrument'是一個未聲明無功。 –
我使用的是最新版本。好像我需要'[cljs.spec.test.alpha:as ts]'。我沒有意識到'儀器'是在不同的命名空間,因爲在查看鏈接時掩蓋了這一點。 –
現在,當我運行該項目時,我得到'goog.require找不到:cljs.spec.test.alpha',從figwheel開始顯示。 –