问题标签 [bucklescript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1277 浏览

json - 如何将此 JSON 解析为记录类型?

我有一些数据将在运行时获取:

使用 ReasonML 和 BuckleScript,我怎样才能以下列形式获取这些数据:

我想出的解决方案是 100 行长。

0 投票
1 回答
337 浏览

ffi - 如何在 Reason (ReasonML) 中使用 [@bs.this] BuckleScript 属性?

我正在尝试编写编译为此 JS 的 ReasonML:

这是我的理由:

我在第二个的行和列上遇到语法错误[@bs.this]

我正在关注@bs.this的 BuckleScript 文档。

this与 OCaml 相比,使用 BuckleScript 绑定到 Reason 的语法是否不同?以下具有 BuckleScript 属性的 OCaml(不是 Reason)可以正确编译为正确的 JS:

如何使用[@bs.this]Reason 中的 BuckleScript 属性来生成使用 JS 的 JS this

0 投票
1 回答
103 浏览

ocaml - 如何将整个模块绑定为一个函数?

我在玩理性,我想尝试做 FFIdebug来学习。我有这个代码

我正在尝试像这样使用它

但我收到以下错误

instance应该绑定到函数吗?我也试过

但我明白了

我错过了什么?

0 投票
1 回答
1206 浏览

json - 如何在 Reason 中将记录列表编码为 JSON?

给定一个记录类型和一个记录列表:

如何使用bs-json模块将其编码为 JSON?

我尝试了什么:我尝试在 bucklescript 中使用字符串插值手动创建 JSON 字符串,但这绝对不是我想做的事情 :)

0 投票
1 回答
73 浏览

ffi - 在 Bucklescript 中的自定义命名(IE 在运行时命名)属性上使用方法

因此,我正在尝试为 Screeps 游戏编写 AI,其文档可在此处找到。

我正在尝试用 OCaml 编写我的 AI,然后通过Bucklescript 将其编译为 Javascript ,其文档位于此处

Anywho,在 Screeps 的 API 中是 method Game.spawns.SPAWN_NAME.createCreep,它SPAWN_NAME对应于所讨论的“spawn”对象的名称。它接受一个字符串数组,对应于它正在帮助生成的“Creep”的各个身体部位,并给出正确的函数调用(具有足够的能量储备),你的 Creep 将在游戏中生成。

一个示例调用(在 JS 中)将是Game.spawns['Spawn1'].createCreep(["body","move"]);

我已经有了代码,它给了我string arrayOCaml 中的所有衍生品。该代码是:

假设我有一个名为 的 spawn Spawn1,并且在 OCaml 中我还有一个用于身体成分的字符串数组:

然后,我使用如下所示的 for 循环遍历该数组中的每个字符串:

在我的一生中,我无法弄清楚如何格式化 Bucklescript 绑定,以便我可以使用and动态调用该createCreep函数。任何帮助都会很棒。我知道 Bucklescript 文档中简要描述了和方法,但我不知道如何使用它们。body : string arrayspawnName : stringbs.getbs.set

在此先感谢您的帮助。


编辑:

我设法通过在 Javascript 模块中编写自己的“接口”函数来“解决”这个问题,然后我可以通过bs.moduleBucklescript 绑定调用该模块。

IE 我写了一个函数

然后我可以通过

对我来说似乎有点被破解了,所以如果有人有另一种不涉及自己重写他们的 API 的方法,请告诉我。

0 投票
1 回答
264 浏览

reason - 带多个参数的 Reasonml 类型,错误异常 Failure("nth")

编译以下代码时出现错误

致命错误:异常失败(“nth”)
忍者:构建停止:子命令失败。

当我将其更改Rectangle为元组(int,int)时,它可以工作

数据构造函数不能有多个参数吗?

谢谢

问题已提交至buckelscript https://github.com/BuckleScript/bucklescript/issues/1822

0 投票
2 回答
561 浏览

ffi - 如何使用 Reason/Bucklescript 设置 DOM 属性(即样式)?

我将如何编写以下 JavaScript:

合理?

到目前为止,我有:

这编译得很好。

但是我怎么能设置一个属性(即styleelement

0 投票
1 回答
232 浏览

ocaml - 使用 Merlin 打印文件的模块签名

使用 Merlin 2.5.4,在我的项目中打印 OCaml 文件签名的正确方法是什么?例如,假设我有:

我想得到:

什么是正确的命令(或命令序列)?

我试过的:

我暂时将文件包装在一个子模块中:module Foo = struct let x = 1 end,然后运行:

但我得到:

这是有道理的,因为我实际上并没有提到我正在查询哪个文件,也没有提到查询(https://github.com/ocaml/merlin/blob/master/doc/dev/OLD-PROTOCOL.md#type -检查)允许我。

E我应该提一下,我使用的是 BuckleScript,而不是ocamlc,并且ocamlc -i仅在我不仅指定我的模块而且指定其所有模块依赖项时才有效;我正在寻找能够自动管理这些依赖项的东西。

0 投票
1 回答
300 浏览

reason - bs-webapi - 如何遍历 Dom.nodeList?

以下将不起作用,因为边是 aDom.nodeList并且DomTokenList.forEach期望 a Dom.domTokenList

0 投票
1 回答
3346 浏览

reason - 如何使用带有 ReasonML 的 npm 包?

我对 ReactJS 非常有经验,现在我正在尝试学习 ReasonML。但是我一直在努力理解的一件事是如何使用 React/Reason 导入 npm 包。

网站上的说明对我来说有点不清楚(https://reasonml.github.io/guide/javascript/interop/)。

那么,如果我有一个 React/Reason 项目并且想使用一个 npm 包,我该怎么做呢?如何使用 Reason lang 导入它?