- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为 https://github.com/oblador/react-native-keychain/blob/master/typings/react-native-keychain.d.ts#L76 编写绑定(bind)
getGenericPassword 返回 false
如果出错,则返回 object
(credentials
)。我不确定这种联合类型是否可以合理地表示,但更好的 API 将是一个选项(选项(凭据))的结果。但是,如何转换 Promise<boolean | credentials>
-> Js.Promise.t(option(credentials))
在绑定(bind)文件中。下面是一个模板。
谢谢你的帮助。
[@bs.deriving abstract]
type credentials = {
service: string,
username: string,
password: string,
};
/* TODO convert the actual return value
Js.Promise.t(option(credentials)) to more reason type
Js.Promise.t(option(credentials)) */
[@bs.module "react-native-keychain"] [@bs.scope "default"]
external getGenericPassword: unit => Js.Promise.t(option(credentials)) = "";
最佳答案
您可以使用 Js.Types.classify
获取值的运行时类型。
type maybeCredentials;
[@bs.module "react-native-keychain"] [@bs.scope "default"]
external getGenericPassword: unit => Js.Promise.t(maybeCredentials) = "";
let getGenericPassword: unit => Js.Promise.t(option(credentials)) =
() =>
Js.Promise.(
getGenericPassword()
|> then_(maybeCredentials =>
switch (Js.Types.classify(maybeCredentials)) {
| JSObject(obj) => resolve(Some(obj |> Obj.magic))
| _ => resolve(None)
}
)
);
maybeCredentials
被定义并用作中间类型。
Js.Types.classify
获取返回值的运行时类型。如果它是一个对象,我们使用
Obj.magic
投出摘要
obj_type
到我们的
credentials
类型(从函数的返回类型推断),并将其包装在
option
中.对于任何其他类型,我们返回
None
.
关于ocaml - 如何为联合类型编写 reasonml 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52297115/
Closed. This question needs to be more focused。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。
我正在研究基于 this project 绑定(bind)到 leafletjs 的 bucklescript . 使用传单, map 具有添加图层的功能,图层具有将自身添加到 map 的功能。 这就
即使我在 ReasonML 中使用相同的类型,我也会收到类型不匹配。错误是: [1] We've found a bug for you! [1] /Users/gt/work/real-an
假设我有以下 Bucklescript 类型: type amqp; [@bs.val] external amqpLib: amqp = "Amqp"; [@bs.module] external
在 Python 中,我可以使用 import somemodule as foo 以便在脚本中为外部模块使用自定义名称。 这如何在 ReasonML 中完成,例如,如果我想将 ReasonReact
我对 Reason 很陌生。我有一个包含两个字符串的元组,我想制作一个 Map,其中的键属于该元组类型。 我应该怎么做? 最佳答案 Map.Make 是一个仿函数,这意味着它需要一个模块作为它的参数,
在 many 中“快速管道”运算符与“最后管道”的比较方式places暗示它们是彼此的直接替代品。想要将一个值作为函数的最后一个参数发送?最后使用管道 (|>)。想把它作为第一个参数发送?使用快速管道
我正在尝试用 reasonML 编写一个命令行工具。所以我在第一行插入了一个shebang(#! /usr/bin/env node),但是编译器编译失败。如何在编译输出中添加shebang? 最佳答
我一直在浏览 JS -> Reason cheatsheet on the Reason ML website .它们非常有用,但都没有涵盖现代 ES 中可用的 async/await 语法。 Rea
ReasonML ( https://reasonml.github.io/ ) 和 TypeScript ( https://www.typescriptlang.org/ ) 之间的权衡是什么?
我正在尝试为 https://github.com/oblador/react-native-keychain/blob/master/typings/react-native-keychain.d.
我正在学习 Reasonml,我在标准库中找不到任何功能,无论是 Bucklescript Js 模块。有没有比使用原始 javascript 更好的选择? 现在我正在用这个功能实现它: let pa
背景 我是 BuckleScript 的绝对初学者,虽然我以前用 npm 下载过包,但我从未编写过库。 目标:使用 npm 在我的项目中安装我的新包本地包 我正在尝试用 JavaScript 包装服务
在 F# 中,我们有 Computation Expressions ,在各种计算上下文(异步、可选等)中工作时可以减少样板和嵌套。 ReasonML 是否有这样的等价物? 如果是这样,语法是什么?
我正在尝试 Reason 并尝试使用正则表达式,但没有任何匹配项。 AFAIK Reason 没有任何特定的正则表达式相关的东西,所以我只是离开 OCaml 文档。 我的字符串看起来像: let na
假设我定义了以下类型: type queueParams = { durable: bool }; class type amqpChannelT = [@bs] { pub assertQu
例如,在 Ruby 中,您可以执行以下操作: list = ["foo", "bar", "baz", "qux", "quux", "corge"] result = list[2..4] 和 re
编译以下代码时出现错误 type shape = | Circle int | Square int | Rectangle int int; let myShape = Circle 1
我有一组 protobuf 类型,我想生成用于序列化的 reasonML 代码。到目前为止我发现的是 ocaml-protoc,它无法安装在我的系统上。使用 docker , FROM ocaml/o
我的意思是真正的原生,并且只有 iOS 线程,而不是具有原生线程和 JavaScript 线程的线程。 最佳答案 据我所知是的,检查例如 Gravitron ,@JaredForsyth 完全使用 R
我是一名优秀的程序员,十分优秀!