我是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 varable。
很确定我错过了什么,但不知道是什么?
答案 0 :(得分:4)
Elm编译成JS并最终依赖JS代码工作。但是,为了提供类型安全的保证,严格限制对JS代码的访问。
所以在实践中,使用JS的唯一认可方式是通过port。
您正在研究的是核心Elm库,它们使用特殊技术直接访问JS库。这些技术没有记录,因为它们不应该被遵循。但由于代码是开源的,因此可以进行逆向工程。你会在互联网上找到使用这些技术的图书馆(例如add missing web apis),但你不会在http://package.elm-lang.org/上找到它们。