可以使用带可扩展记录的Maybe吗?

Jos*_*ens 1 elm

我正在尝试编写一个函数来拉出可扩展记录列表,我想知道这是否可行.源代码如下,或在此处查看Ellie链接

module Temp exposing (..)

import Html exposing (text)


main =
    text "Hello"


items : Maybe List { data | id : Int } -> List { data | id : Int }
items maybeList =
    case maybeList of
        Just t ->
            t

        Nothing ->
            []
Run Code Online (Sandbox Code Playgroud)

Dog*_*ert 5

Maybe List { data | id : Int }解析为Maybe (List) ({ data | id : Int }).我不知道为什么错误信息是如此误导,但解决办法是包裹List ...()这样的:

items : Maybe (List { data | id : Int }) -> List { data | id : Int }
              ^                        ^
Run Code Online (Sandbox Code Playgroud)

编辑:此外,您的功能可以简化Maybe.withDefault:

items = Maybe.withDefault []
Run Code Online (Sandbox Code Playgroud)