我们说我有以下类型定义:
type alias EntityBase =
{ id: Int
, name : String
}
-- Derived types
type alias PersonSpecfic entityBase =
{ entityBase
| age: Int
, address : String
}
type alias Person = PersonSpecfic EntityBase
当前版本的Elm(0.16)中的类型Person / PersonSpecfic
是否有任何构造函数?
(编译器说"Cannot find variable ``PersonSpecfic``"
)
这与能够为类型层次结构创建Json解码器相关。
答案 0 :(得分:1)
由于elm 0.16,语言中不再存在记录扩展名。
部分地,作为副作用,没有以“通用”/“扩展”方式定义的记录类型的构造函数。
可在此主题中找到更多详细信息: https://groups.google.com/forum/#!searchin/elm-discuss/constructor/elm-discuss/AaL8iLjhEdU/JSAXV2oACgAJ
答案 1 :(得分:0)
是的,这看起来像编译器错误。您始终可以创建自己的构造函数以在JSON解码中使用:
createPerson : Int -> String -> Int -> String -> Person
createPerson id name age address =
{ id = id
, name = name
, age = age
, address = address
}