Elm速记,用于向联合类型提供类型变量

Elm速记,用于向联合类型提供类型变量,elm,Elm,我有一种像这样的榆树 type ValueAndContext valueType contextType = ValueAndContext valueType contextType type IntWithStringContext = ValueAndContext Int String 我想创建一个具有特定类型参数的新类型,以保存键盘点击和屏幕像素,可能是这样 type ValueAndContext valueType contextType = ValueAnd

我有一种像这样的榆树

type ValueAndContext valueType contextType
    = ValueAndContext valueType contextType
type IntWithStringContext = ValueAndContext Int String
我想创建一个具有特定类型参数的新类型,以保存键盘点击和屏幕像素,可能是这样

type ValueAndContext valueType contextType
    = ValueAndContext valueType contextType
type IntWithStringContext = ValueAndContext Int String
我可以像这样创建一个类型别名,但它需要我引入一个额外的变量来保存该类型,因此不需要保存那么多的点击或像素

type alias IntWithStringContext =
  { update: ValueAndContext Int String }

我认为在Elm中不可能有任何其他功能,但欢迎提出任何想法。

当然,您与第一个示例非常接近。您可以使用如下别名:

type alias IntWithStringContext = ValueAndContext Int String
可能更常见的是看到记录类型的类型别名,但也可以为联合类型别名

编辑

这将别名类型名称,但您仍必须使用原始构造函数:

get : IntWithStringContext
get = ValueAndContext 1 "hello"

当然,你和你的第一个例子非常接近。您可以使用如下别名:

type alias IntWithStringContext = ValueAndContext Int String
可能更常见的是看到记录类型的类型别名,但也可以为联合类型别名

编辑

这将别名类型名称,但您仍必须使用原始构造函数:

get : IntWithStringContext
get = ValueAndContext 1 "hello"

这确实可以编译,但我不能以任何有用的方式使用它。以下两种都会导致类型错误我无法向注释中添加换行符,因此您必须推断它们的位置,sorryget:IntWithStringContext get=IntWithStringContext 1 helloget:IntWithStringContext get=ValueAndContext 1 helloI提供了一个示例,说明如何使用它。谢谢你,查德。我把它拿回来,我的第二个例子确实有效。它可以编译,但我不能以任何有用的方式使用它。以下两种都会导致类型错误我无法向注释中添加换行符,因此您必须推断它们的位置,sorryget:IntWithStringContext get=IntWithStringContext 1 helloget:IntWithStringContext get=ValueAndContext 1 helloI提供了一个示例,说明如何使用它。谢谢你,查德。我把它拿回去,我的第二个例子确实有效。