我在js_of_ocaml中使用React包装器。 在我的OCaml接口中,React的每个组件都是一个包含类型props和类型状态的模块。这些类型将传递给实际的反应道具&状态,所以他们需要在某些时候用Js.Unsafe.inject转换为js。道具的例子(这里只是一个字符串):
type props = string
type jsval = Js.js_string Js.t
let from_js jsv = Js.to_string jsv
let to_js ov = Js.string ov
要实际使用这些道具,我需要从js React道具中取出道具类型对应的值,因此需要from_js。 所以道具& state,每个组件模块中的自定义类型,需要存储在javascript props&状态,他们需要转换回来。 这引入了很多样板,请看上面的例子,将props作为一个简单的字符串。对于每个组件模块,我都需要为props和amp;州。想象一下类型道具是一个复杂的记录...如何轻松地将其转换为js并将其取回?
有没有办法以某种方式在javascript中存储自定义类型并以ocaml类型将其恢复,而无需使用这些函数进行转换?