如果您查看 Clojure 中 {{defrecord}} 的文档串并与 ClojureScript 进行比较,您会看到 ClojureScript 没有提到 {{__hash}} 是一个 reserved 字段名。
应该提到这一点,因为这在 ClojureScript 的 {{defrecord}} 实现 中被内部使用。
作为补充,虽然在 Clojure 中 {{__hasheq}} 是 reserved 的,但似乎没有理由在 ClojureScript 中表示它被 reserved。(相关的 Clojure 提交是 https://github.com/clojure/clojure/commit/a1c3dafec01ab02fb10d91f98b9ffd3241e860c0)
此外,在 Clojure 和 ClojureScript 中,标记为 reserved for {{defrecord}} 的字段在 {{deftype}} 中也进行了标记。这对我来说并不明显,所以在我看来,关于 {{__hash}} 是否应该在 ClojureScript 的 {{deftype}} 文档串中作为 reserved 进行标记,这是一个未解决的问题。