Elm 无法公开UnionType

Elm 无法公开UnionType,elm,union-types,Elm,Union Types,我有两个elm模块试图共享一个联合类型,因为我试图按照这里所述重构我的应用程序,但我一直在使用它 不暴露 尽管我试着将其建模为 单元1 module Module1 exposing ( OneMsg(..), Model, view, [etc.] ) ... type OneMsg = Name String ... 单元2 module Module2 exposing(..) import Module1 exposing(OneMsg(..)) type Msg

我有两个elm模块试图共享一个联合类型,因为我试图按照这里所述重构我的应用程序,但我一直在使用它

不暴露

尽管我试着将其建模为

单元1

module Module1 exposing ( OneMsg(..), Model, view, [etc.] )

...

type OneMsg
    = Name String 

...
单元2

module Module2 exposing(..)

import Module1 exposing(OneMsg(..))


type Msg
    = UrlChange Navigation.Location 
    | ...
    | Module1Msg Module1.OneMsg

...

Html.map Module1.OneMsg (Module1.view model)

...
获取此错误

   -- NAMING ERROR ---------------------------------------------- ././view/View.elm

   Cannot find variable `Module1.OneMsg`.

   74|                     Html.map Module1.OneMsg (Module1.view model)
                                    ^^^^^^^^^^^^^^^^^^
   `Module1` does not expose `OneMsg`.
我在这里发现的唯一一件事是一个古老的问题,它似乎是同一个事件,尽管有一个古老的语法:

如果相关,我使用elm 0.18.0


我打赌我错过了什么。有人能发现问题吗?

Module1.OneMsg
是一种类型
Html.map
需要一个函数作为其第一个参数。您通常会以如下方式弹出消息(在
Module2
中):

然后您可以在
模块2
中这样使用它:

type Module2Msg
    = ...
    | Module1Msg Module1.OneMsg
Html.map Module1Msg (Module1.view model)

Module1.OneMsg
是一种类型
Html.map
需要一个函数作为其第一个参数。您通常会以如下方式弹出消息(在
Module2
中):

然后您可以在
模块2
中这样使用它:

type Module2Msg
    = ...
    | Module1Msg Module1.OneMsg
Html.map Module1Msg (Module1.view model)

您能显示
OneMsg
的类型定义吗?它就在那里,我刚刚重命名了它,以便将问题分开并忘记了一个位置。您能显示
OneMsg
的类型定义吗?它就在那里,我刚刚重命名了它,以便将问题分开并忘记了一个位置。对不起,忘记包含“main”我有味精。已编辑问题以包含此内容。抱歉,我不重复使用该名称。我想这样做是相当愚蠢的。这是一个简单的复制粘贴错误。在这种情况下,您应该可以使用
Html.map Module1Msg(Module1.view model)
(答案更新)现在我看到了。Html.map
Module1.OneMsg(Module1.view模型)
vs
Html.map Module1Msg(Module1.view模型)
。谢谢。对不起,忘了把我的“主要”味精放进去了。已编辑问题以包含此内容。抱歉,我不重复使用该名称。我想这样做是相当愚蠢的。这是一个简单的复制粘贴错误。在这种情况下,您应该可以使用
Html.map Module1Msg(Module1.view model)
(答案更新)现在我看到了。Html.map
Module1.OneMsg(Module1.view模型)
vs
Html.map Module1Msg(Module1.view模型)
。谢谢