在这种情况下如何为记录创建别名?

ben*_*002 4 alias record elm

我有一个关于记录的问题:假设我有一个接收记录的函数,如下所示:

getId : { file | id : String } -> String
getId file = file.id
Run Code Online (Sandbox Code Playgroud)

我可以传递这样的信息:{ id = "abcd", name = "hi.txt"}因为它有一个id. 到目前为止一切都很好。我的问题是:我可以为函数类型签名中的“文件”创建一个别名吗?那的语法是什么?

Cha*_*ert 8

您可以为这个可扩展记录定义一个别名,WithID如下所示:

type alias WithID a = { a | id : String }
Run Code Online (Sandbox Code Playgroud)

现在你可以getId像这样更新签名:

getId : WithID a -> String
getId file = file.id
Run Code Online (Sandbox Code Playgroud)