我对记录有疑问:可以说我有一个接受记录的函数,如下所示:
getId : { file | id : String } -> String
getId file = file.id
我可以传递这样的内容:{ id = "abcd", name = "hi.txt"}
,因为它有一个id
。到目前为止一切都很好。我的问题是:我可以在函数类型签名中为“文件”创建别名吗?它的语法是什么?
您可以为可扩展记录定义一个别名,称为WithID
,如下所示:
type alias WithID a = { a | id : String }
现在您可以像这样更新getId
的签名:
getId : WithID a -> String
getId file = file.id