Modern JS with CLJS: class and template literals

This is not currently covered by defclass. I’d suggest using Object.defineProperty since static properties are not yet part of any spec (IIRC).

Something like

(defclass Foo
  (constructor [this a b] ...))

(js/Object.defineProperty Foo "observedAttributes" #js {:get (fn [] ...)})
;; maybe just
(set! (.-observedAttributes Foo) #js ["foo" "bar"])