core-typed 2024-12-05

Good morning again. I am trying to understand whats the best way to type functions with keyword args. For example, I am trying to type component’s system-map. Something like below.

(defn system
  []
  (component/system-map
    :db-info     (db-info/db-info)
    :ring-app    (ring-app/ring-app)
    :http-server (http-server/http-server)))

I read through most of the documentation, and I see a couple of references to how to do keyword args, but I am a little confused.

This is where I got, (t/ann component/system-map [-> & :optional-kws {}]) but its clearly wrong. Thanks!

Try [& :optional {} -> ]

np. also supported: & :mandatory {... :default d} :optional {... :priority (U nil true)}

1