问题标签 [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 回答
119 浏览

ocaml - 如何为嵌套递归数据定义数据类型

我从 js 端得到了一个数据,看起来像这样 { "selectionSet": { "type": 1, "selections": [ { "name": { "kind": "Name", "value": "viewer" }, "selectionSet": { "type": 1, "selections": [ { "name": { "kind": "Name", "value": "avatarUrl" }, "selectionSet": null } ] } } ] } } 我想知道如何为selectionSetand定义类型selections

似乎在定义时selections,我应该定义,selectionSet因为它有一个类型为的字段selectionSet。但是当定义时selectionSet,我应该定义selections

有人可以用 OCaml 风格回答吗?我想将此 JSON 样式数据转换为记录。

0 投票
2 回答
304 浏览

fetch-api - 如何使用 bs-fetch 传递查询字符串参数?

将查询字符串参数传递给的正确方法是什么bs-fetch

目前,我有:

显然,这对于较大的参数列表是不可持续的。

有一个更好的方法吗?

0 投票
1 回答
277 浏览

datetime - 如何获得当前年份?

有没有办法在 Reason 中获取当前年份?我找到了一个名为bs-luxon的库,但我无法使用它。我已经按照网站上的说明安装了它,但我不知道如何导入它。

如何使用此库或其他方式获取当前年份?

0 投票
1 回答
647 浏览

types - 如何为 Js.Dict.get 使用 Js.Dict.t 类型

我正在尝试将一些 JS 转换为 Reason,在此过程中我需要输入 JSON 响应并检查对象中是否存在键。

这是我当前的代码:

目前我收到此错误:

我不能删除Js.Dict.t类型,因为Js.Dict.get不喜欢它。

如何键入响应以使其正常工作?

谢谢!

0 投票
1 回答
59 浏览

ffi - 基于外部JS创建绑定

这篇文章中,作者教授如何将 NodeJS 库绑定到 Reason。但是,我想为无法通过 NPM 安装的Google Maps Javascript API创建一个绑定。相反,它通常加载在<body>with<script>标签的底部。

callback=funcName此外,Google Maps Javascript API 仅在作为 url ( )中的参数传递的函数内导出它的函数。这在 Reason 中会像在原始 JS 中一样工作吗?

我怎样才能进行这种绑定?

0 投票
2 回答
272 浏览

graphql - Decoding Json/Reading Errors in ReasonML

I have got an graphql query coming back from aws's appsync service. This is the json that comes back from the query.

https://github.com/idkjs/reason-apollo-question/blob/600584c454ffb2efd08b8e42e3adca0eb151ba60/scratch/persons.json#L1-L27

This is what it looks like logged to the console. enter image description here

This is the query response in apollo-dev-tools: enter image description here

Error accessing items array.

Trying to log the items values to console by running https://github.com/idkjs/reason-apollo-question/blob/d38e7fbc33f02ab718c7227958d88f02adba1696/src/Persons.re#L66-L70

produces this error:

How do I resolve this type error?

Thank you!

0 投票
2 回答
161 浏览

ocaml - OCaml 多态递归错误

给定以下类型:

我从编译器得到一个错误:

错误:此表达式具有类型 b#1 堆栈,但预期的表达式类型为 'a 堆栈类型构造函数 b#1 将逃脱其范围

在这行代码中:

需要一段时间才能做到这一点,而不会遇到通过使用一些帮助类型不可避免地纠正的晦涩错误消息,但我似乎无法弄清楚如何使用助手纠正这个问题,或者我是否正在尝试对我的类型做一些愚蠢的事情。

消除此错误的正确方法是什么?

0 投票
1 回答
182 浏览

promise - 如何将承诺错误转换为自定义类型?

嘿,我有这段代码

在 catch 中,错误字段包含一个字段code,我可以使用它来获取有关错误的更多详细信息。

我正在尝试编写一个包装函数来将其error转换为“自定义”类型,但我不知道该怎么做。

到目前为止我有(感谢贾里德)

如何添加额外的检查以确保该code属性存在于错误中?

0 投票
2 回答
842 浏览

json - 将 JSON 字段转换为 ReasonML 变体

我有一个 JSON 结构,其中包含一个period可以是对象或字符串的字段。我的代码中已经准备好变体,并且工作正常:

问题是当我尝试将输入 JSON 转换为变体类型时:我根本不知道该怎么做。这是我的尝试的样子:

现在,这当然行不通,因为我正在尝试匹配仍然属于 my 一部分的类型的东西Js.Json.tStringperiodVariant我不知道如何实现我想要的。

0 投票
1 回答
336 浏览

ocaml - 带有可选和可变字段的记录

在文档中:https ://bucklescript.github.io/docs/en/object.html有关于可变字段和可选字段的记录示例。当我尝试同时使用两者时,它失败了:

编译:

添加[@bs.optional]属性:

错误信息:

第 7、20 行:此表达式的类型为 unit -> person,但表达式应为 person 类型

第 7 行是该ageSet行。

我在这里错过了什么吗?