例如,从
我认为答案是使其可以从定义的模块中自行公开。这正确吗?
我认为这证明了我之前的假设,但我不愿回答我的问题,因为我是 Elm 的新手,很容易出错。
任务
模块中的任务
类型的文档中可以看到:type alias Task err ok =
Task err ok
或者来自源代码:
type alias Task x a =
Platform.Task x a
我认为答案是使其可以从定义的模块中自行公开。这正确吗?
更新:
Chad Gilbert提出了一个很好的观点,提到平台
原语,如Task
和ProcessId
类型,它们的构造函数从未在那里使用过,但这就解释了为什么它们会被分组在这样一个中心位置。尽管他的答案没有解释为什么它们在各自的模块中被别名(参见Process.Id和Task.Task上面)。
Task
和Process
的人都必须导入这些特定类型(即Platform.Task
,Platform.ProcessId
),因为它们不是默认导入的(请参见Elm的默认导入)。
更新2:
另一个例子是模块Json.Decode
module中的Value
:
-- From the docs:
type alias Value =
Value
-- From the source:
type alias Value = JsEncode.Value
我认为这证明了我之前的假设,但我不愿回答我的问题,因为我是 Elm 的新手,很容易出错。
Platform.Task
,我应该在我的问题中加入它,但我试图理解在Task
模块中将其定义为type alias
的意义。我猜所有的原始类型都在Platform
中定义,并且在它们自己的模块中被别名化,这样就不必通过它们的全名来引用它们,而可以通过它们的模块导出它们。(同样适用于Platform.ProcessId
和Process
中的Id
类型别名)。 - toraritte