问题标签 [rescript]

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 回答
213 浏览

reason - 如何在 ReScript 中将 Js.Dict.t 转换为 Js.t?

有没有一种直接的方法来转换Js.Dict.t像这样的

喜欢Js.t这个:

0 投票
1 回答
148 浏览

reason - 如何在 ReScript 中将动态值设置为 Js.t 键?

有没有办法将动态值设置为Js.tReScript 中的键?

0 投票
0 回答
63 浏览

reactjs - 是否可以部分编译 Reason+React 应用程序?

在编译 Reason+React 应用程序时,我正在考虑让开发体验尽可能流畅,反馈循环尽可能短。如果我使用

在文件中,这是否意味着我必须在每次更改时将 React 与文件捆绑在一起?或者我可以预编译该文件的依赖项,并且编译更改的文件而不在构建系统中触发任何其他进程?

0 投票
1 回答
172 浏览

json - 如何迭代/映射作为数组的 Js.Json.t?

我正在尝试解码具有该类型的 JSON 数组Js.Json.tarray(Js.Json.t)显然不是)。调用Js.log(jsonList)显示它是一个数组,但我不确定如何映射数组中的元素以对其进行解码。

到目前为止,我有:

编译器需要一个非柯里化函数,我不知道如何提供。

编辑

我想我更接近了,但我正在This has type: array(unit) Somewhere wanted: unit上线(下)value |> Array.map(Js.log)

0 投票
1 回答
151 浏览

reason - 重新编写大写组件

Rescript Documentation中,建议可以使用 spread 来启用将预先存在的列表传递给组件。我很困惑 Rescript 中到底MyComponent是什么,因为我找不到初始化组件的方法,这可以通过 vanilla React 中的函数来完成。

在哪里myChild = list{child1,child2}

多次尝试后,以下方法不起作用

  • @JSX div(~children=myChild) ,因为 Rescript 要求将其包装在一个列表中,如list{myChild}
  • @JSX div(~children=list{myChild}),这给出了一个类型错误
  • 初始化一个名为 MyComponent 的模块,然后执行<MyComponent> ...myChild </MyComponent>,但这给出了错误The value make can't be found in MyComponent
  • 使用大写转义初始化函数:let \"MyComponent" = () => ...,但这会产生错误The module or file MyComponent can't be found.

我想要的是一个组件初始化的例子,MyComponent它可以用作一个大写的标签,比如<MyComponent>...myChild</MyComponent>. 先感谢您。

0 投票
1 回答
108 浏览

reason - 比较 Rescript 中的字符串

浏览Rescript 的 API后,似乎没有比较两个返回布尔值的字符串的函数。最好的选择是localeCompare,但它的行为与 JS 的==. 为什么localeCompare返回浮点数而不是整数?

0 投票
3 回答
249 浏览

reason - 你如何在 ReScript/ReasonML 中调用带有单位的 uncurried 函数?

假设我有一个 uncurried 函数,例如:

我可以用大多数文字来调用这个函数,比如:

但是当我试图用 void 调用它时,我得到一个错误:

作为一种解决方法,我可以这样做:

有没有办法避免这种情况?

0 投票
1 回答
139 浏览

ocaml - ReScript 中的无限列表/流

我似乎无法在 ReScript 中找到无限列表的正确类型。

我第一次尝试:

这是不正确的,因为 ReScript 认为该类型是循环的。所以我尝试了:

这仍然给了我一个类型错误。

最终我试图让这段代码工作,但由于类型签名是无限的,它失败了。

0 投票
4 回答
181 浏览

javascript - 如何在没有突变的情况下按功能创建有效的组?

有没有一种方法可以有效地实现按功能分组而不发生突变?

天真的实现:

为了争论,没有必要使它更通用。我面临的问题是我循环了三次:

  • 一次Array.prototype.reduce需要循环messages
  • 一次Array.prototype.some查看日期键是否已存在于结果数组中
  • 在日期键已经存在的情况下,我们再次循环Array.prototype.map以更新数组的特定元素
  • 否则,返回一个包含新元素的新数组

如果在 ReScript 中没有真正提高效率的好方法,那么我总是可以为这个函数使用原始 JavaScript,但我很好奇是否有可能在没有突变的情况下有效地做到这一点。

0 投票
1 回答
132 浏览

module - 如何在 ReScript 中编写简短的本地打开?

这在 ReasonML 中编译:

但不在 ReScript 中:

我在官方文档中没有发现任何关于删除的内容。我错过了吗?语法是否已更改,还是已删除且未在文档中提及?