Elm 导入 Js 库

Mur*_*ock 1 elm

我是榆树的新手,一直在阅读解码库

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

然而,我在第 55 行有点困惑,他们公开了一个似乎链接到 javascript 文件(Elm.Kernel.Json)的库,此外他们使用了一个像 Elm.Kernel.Json.decodeString 这样的变量,它似乎链接到一个javascript 变量在相应的文件中称为 _json_decodeString。

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

很确定我遗漏了一些东西,但不知道是什么?

Sim*_*n H 5

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

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

您正在查看的是核心 Elm 库,这些库使用特殊技术直接访问 JS 库。这些技术没有记录在案,因为它们不应该被遵循。但由于代码是开源的,逆向工程是可能的。您会在 Internet 上找到使用这些技术的库(例如添加缺少的 web api),但您不会在http://package.elm-lang.org/上找到它们。