我来自 Javascript 背景,我试图了解如何使用 Reason/Ocaml 的模块系统构建/构建程序。
作为一个练习,假设我想在 OCaml/Reason 中编写这段 javascript(将通过 js_of_ocaml 将其编译回 js)
var TeaType = new GraphQLObjectType({
name: 'Tea',
fields: () => ({
name: {type: GraphQLString},
steepingTime: {type: GraphQLInt},
}),
});
我应该如何设计我的程序来实现这一点?
我是否应该制作一个模块,该模块需要另一个模块通过 js_of_ocaml 在 js 中生成 GraphQLObjectType?
我将如何构造这种支持 GraphQLObjectType 的类型?
Tea.re
let name = "Tea";
let fields = /* what type should I make for this? Tea is
just one of the many graphql-types I'll probably make */
我的意思是 fields 是一个 thunk,它返回一个包含未知数量的字段的地图。(每个graphqlobject都有不同的字段)这个在OCaml/Reason中映射到什么类型,我需要自己制作吗?