ClojureScript 会用 JavaScript 的唯一数值类型 Number 来表示像 {:person/weight 200.0} 这样的数值。当这样的记录使用 transit 进行序列化时,transit 会将 Number: 200 视为一个整数,并将其打包,然后其他平台如 JVM 会将这个整数拆包,而不是浮点数,如果没有预处理值以符合说明 :person/weight 实际上是 :db.type/float 的模式,像 Datomic 这样的系统会因为不预期的类型而崩溃。
这是 transit 的设计缺陷吗?transit 是否应该改变,以便我可以指定类型和/或集成到模式提供程序(spec)中,以选择正确的类型?