如何在榆树中列出某种类型的定义

use*_*582 2 elm

type alias Employee =
    { role : Role, name : String }


type Role
    = Engineer
    | Manager
    | Sales
    | Accounting
    | Hr


generateSample =
    Role.all |> List.map createModelWithType
Run Code Online (Sandbox Code Playgroud)

我需要完成Role.all,即使Role在这种情况下也无法访问.什么是实现/替代表达方式的最佳方式.

Cha*_*ert 7

没有自动方法列出类型的所有构造函数.你可以建立一个这样的列表:

allRoles : List Role
allRoles =
    [ Engineer
    , Manager
    , Sales
    , Accounting
    , Hr
    ]
Run Code Online (Sandbox Code Playgroud)

在Elm中,没有类似于其他语言的简单枚举的概念.类型构造函数也可以有参数,这可能有助于理解为什么没有内置的方法来枚举构造函数列表.