Rescript 记录:作为数组的键

Rescript Record: Key as Array

在 Rescript 中,可以这样定义一个 Record

type record1 = {
   a : String
}

不是:

type record2 = {
   [a] : String
}

我正在寻找 编译为 JS 的记录,例如:

{
   [Op.or]: [12,13]
}

以上用例来自Sequelize,参考文献here.

我的当前解决方案

%raw(`{[Op.or]:[12,13]}`)

目前还不完全清楚您打算如何与 Op 构造交互,是否可以绑定到它,但这里有一个示例,并且与 Js.Dict.t 一起有效地产生了相同的输出:

module Op = {
  @val external or: string = "Op.or"
}

Js.Dict.fromList(list{
  (Op.or, [12, 23])
})

它不会直接编译成你想要的 JS,但是,如果你依赖于实际解析源代码的东西,这可能是一个问题。但除此之外,我相信这应该可以满足您的要求。