This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-03-11
Channels
- # aleph (1)
- # beginners (192)
- # boot (9)
- # cider (12)
- # cljs-dev (223)
- # clojure (30)
- # clojure-brasil (3)
- # clojure-china (1)
- # clojure-italy (4)
- # clojure-russia (24)
- # clojure-spec (7)
- # clojured (5)
- # clojurescript (82)
- # cursive (9)
- # datomic (24)
- # emacs (6)
- # fulcro (9)
- # keechma (1)
- # luminus (1)
- # off-topic (3)
- # om-next (5)
- # onyx (1)
- # parinfer (9)
- # re-frame (1)
- # reitit (4)
- # ring-swagger (6)
- # shadow-cljs (8)
- # spacemacs (1)
- # sql (1)
- # unrepl (13)
Теперь предположим у нас есть вектор из этих c,d,e
. Как пропихнуть этот вектор в case вместо листа?
@achikin The test-constants are not evaluated. They must be compile-time literals, and need not be quoted.
Так что можно сделать макро, которое заменит вектор на список, если сильно хочется.
@dottedmag спасибо!
приветствую! подскажите как спекой описать атом, который содержит булевый тип?
@dottedmag у меня в компонент передается реагентовский атом, например open?
. Компонент покрыт спекой и валидируеться через instrument
. Получается, что я пропсу open?
не могу провалидировать?
а можно пример как содержимое атома покрыть?
вот так
(s/def ::open? boolean?)
выдает ошибку https://www.dropbox.com/s/4ccir98okcisk3o/Screenshot%202018-03-11%2019.58.17.png?dl=0да я понимаю, я не понимаю как это переписать. спеку пересмотрел, погугл - не помогло. пришел сюда
https://stackoverflow.com/questions/37972074/how-to-clojure-spec-a-reference-type-like-atom
(s/def ::a (s/and
#(instance? clojure.lang.IAtom %)
#(boolean? @%)))
(s/explain ::a (atom true))
Success!
(s/explain ::a true)
val: true fails spec: ::a predicate: (instance? clojure.lang.IAtom %)
=> nil
(s/explain ::a (atom 1))
val: #object[clojure.lang.Atom 0x335eae96 {:status :ready, :val 1}] fails spec: ::a predicate: (boolean? (deref %))
=> nil
Спека — это комбо из предикатов. Поэтому можно проверить, что это атом, и внутри него бул. Технически это возможно, но неверно с точки зрения дизайна.
@misha спасибо, это то, что нужно. По поводу попахивания: мне кажется удобно описать пропсы компонента, особенно если у компонента есть пропсы массивы/объекты/перечисляемые типы. Такое себе документирование компонента. И да, это у меня из-за того что я много использовал реактовские PropTypes, и как-то привык.