Elm导入Js库

Elm Import of Js libraries

我是 elm 的新手,一直在

阅读 Decode 库

https://github.com/elm-lang/core/blob/eb6ecefb9e001a58746110cdda7e7b366e577b2f/src/Json/Decode.elm

但是我对第 55 行有点困惑,他们公开了一个似乎链接到 javascript 文件(Elm.Kernel.Json)的库,此外他们还使用了 Elm.Kernel.Json 之类的变量.decodeString 似乎链接到相应文件中名为 _json_decodeString 的 javascript 变量。

  1. 他们是如何将 js 库导入到 elm 中的?
  2. 他们如何将 json 变量与 elm 文件中的变量相关联?

很确定我遗漏了什么但不知道是什么?

Elm 编译为 JS 并最终依赖 JS 代码工作。但是为了提供类型安全的保证,对 JS 代码的访问受到严格限制。

所以在实践中,唯一被认可的使用 JS 的方式是通过 port

你看到的是核心的 Elm 库,它们使用特殊的技术直接访问 JS 库。这些技术没有记录,因为它们不应该被遵循。但由于代码是开源的,逆向工程是可能的。您会在 Internet 上找到使用这些技术的图书馆(例如 add missing web apis), but you will not find them listed on http://package.elm-lang.org/.