类型和类型别名之间的Elm差异?

ehdv

在榆树,当我想不通type的是适当的关键字对type alias该文档似乎没有对此的解释,我也无法在发行说明中找到它。这是否记录在某处?

罗伯特·卢比

我如何看待它:

type 用于定义新的联合类型:

type Thing = Something | SomethingElse

在此定义之前SomethingSomethingElse并没有任何意义。现在它们都是Thing我们刚刚定义的type

type alias 用于给已经存在的其他类型命名:

type alias Location = { lat:Int, long:Int }

{ lat = 5, long = 10 }具有type { lat:Int, long:Int },它已经是有效的类型。但是现在我们也可以说它具有类型,Location因为这是同一类型的别名。

值得一提的是,以下内容将很好地编译和显示"thing"即使我们指定thing为aStringaliasedStringIdentity采用一个AliasedString,我们也不会收到String/之间类型不匹配的错误AliasedString

import Graphics.Element exposing (show)

type alias AliasedString = String

aliasedStringIdentity: AliasedString -> AliasedString
aliasedStringIdentity s = s

thing : String
thing = "thing"

main =
  show <| aliasedStringIdentity thing

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

类型别名和NewType之间的区别

来自分类Dev

typedef和C ++ 11类型别名之间的区别

来自分类Dev

typedef和C ++ 11类型别名之间的区别

来自分类Dev

Scala类型标签和类型别名

来自分类Dev

类型别名和类似类型

来自分类Dev

输入Elm中其他类型列表的类型别名

来自分类Dev

如何从类型别名提取类型实参和类型参数引用其他类型别名?

来自分类Dev

如何从类型别名提取类型实参和类型参数引用其他类型别名?

来自分类Dev

Scala类型别名和方法重载

来自分类Dev

类型别名错误

来自分类Dev

类型别名与类型相同

来自分类Dev

REPL中类型别名和单例对象之间的冲突

来自分类Dev

Typeof / instanceof类型别名

来自分类Dev

std :: bind与类型别名

来自分类Dev

Rust中的类型别名

来自分类Dev

快速扩展类型别名

来自分类Dev

Scala中的类型别名

来自分类Dev

类型别名的伴随对象

来自分类Dev

条件类型别名定义

来自分类Dev

如何创建类型别名

来自分类Dev

通用函数类型别名

来自分类Dev

如何检测类型别名?

来自分类Dev

键值对的TypeScript类型别名

来自分类Dev

TypeScript中的类型别名

来自分类Dev

Scala 中的类型别名

来自分类Dev

类型别名和函数签名F#

来自分类Dev

从类型别名转换为原始类型

来自分类Dev

如何从类型别名确定类型?

来自分类Dev

使用类型作为其他名称和类型别名有什么区别?