Optional typing in Clojure, as a library.
tldr; see the minimal example project for Typed Clojure[Script] setup.
Typed Clojure is separated into modules. You'll want the full type checker at development time, and the runtime dependencies in production.
In Clojure CLI's deps.edn
, this will look something like this:
{:deps {org.typedclojure/typed.clj.runtime {:mvn/version "1.1.0"}}
:aliases {:dev {:extra-deps {org.typedclojure/typed.clj.checker {:mvn/version "1.1.0"}}}}}
You can then start a dev repl with clj -A:dev
.
In Leiningen's project.clj
, it will look something like this:
(defproject com.my-domain/a-project "1.0.0-SNAPSHOT"
:dependencies [[org.typedclojure/typed.clj.runtime "1.1.0"]]
:profiles {:dev {:dependencies [[org.typedclojure/typed.clj.checker "1.1.0"]]}})
Then, lein repl
will automatically activate the :dev
profile. Verify the type
checker is not included in uberjars with lein with-profile uberjar deps :tree
.
For ClojureScript support, use org.typedclojure/typed.cljs.runtime
and org.typedclojure/typed.cljs.checker
.
Latest stable release is 1.1.0.
See modules for specific version coordinates:
Typed Clojure supports Clojure 1.12.0-alpha3 and JDK 1.8+.
Use the core.typed mailing list for Typed Clojure discussion.
#core-typed on Clojurians Slack
See wiki.
core.async Rock-paper-scissors
Thanks to the following people for contributing to core.typed:
Thanks to the following companies for their active sponsorship of Typed Clojure's development via OpenCollective.
YourKit is kindly supporting core.typed and other open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications. Take a look at YourKit's leading software products:
Copyright © Ambrose Bonnaire-Sergeant, Rich Hickey & contributors.
Licensed under the EPL (see the file epl-v10.html).
Copyright © Nicola Mometto, Rich Hickey & contributors.
Licensed under the EPL (see the file epl-v10.html).
Copyright © Nicola Mometto, Rich Hickey & contributors.
Licensed under the EPL (see the file epl-v10.html).
Copyright © Nicola Mometto, Rich Hickey & contributors.
Licensed under the EPL (see the file epl-v10.html).
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close