gpt4 book ai didi

elm - 有没有办法在 elm 中使用 javascript 库?

转载 作者:行者123 更新时间:2023-12-02 06:16:17 27 4
gpt4 key购买 nike

我正在与 Elm 合作。我读过ports in Elm 以及它们如何帮助在 Elm 和 Javascript 之间共享数据/消息。

我打算使用像 moment.js 这样的丰富的日期时间库。建议如何移植 moment.js 或任何其他替代方案?

最佳答案

Elm 没有任何丰富的日期时间库(据我所知),所以让我们开始移植。

我快速浏览了这个 JavaScript 库,看起来它的大部分功能并不依赖于当前日期/时间,我预计这是日期时间库中使用的唯一副作用。所以 Elm 端口不会有太大帮助。

解决方案1 ​​- 将JS代码翻译为Elm代码

这显然需要一些时间,但应该相当简单,因为它基本上是无副作用的代码。

解决方案 2 - 原生 Elm 库(不再支持)

更新:从 Elm 0.19 开始,不再支持创建您自己的 native 模块。

由于大多数函数都是纯函数,因此您最好编写一个 native 库。这样,moment.js 中的函数就可以一对一映射到 Elm 中的函数。

警告:通常不鼓励原生库。
原因是直接调用 JavaScript 函数确实是一种不安全的方式,没有编译器检查,可以引入任意副作用,这会弄乱语言。所以这并不理想。但如果您确保只绑定(bind)到 JavaScript 库中的纯函数,您就可以摆脱它。
看一下 native 库示例,例如 elm-markdown看看如何写一个。您将需要 elm-package.json 文件中的 "native-modules": true 指示。如果您想将库发布到 package.elm-lang.org它需要首先经过检查和批准。您可以在邮件列表中询问。

关于elm - 有没有办法在 elm 中使用 javascript 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27701032/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com