j'ai un morceau de code suivant Elm (fonction getProjectView est omis pour brievity):Elm ne déduisent type de valeur Rien mal
type Model = Maybe List Project
model : Model
model = Nothing
getView : Model -> Html any
getView model =
case model of
Just projects ->
ul [] (List.map getProjectView projects)
Nothing -> p [] [ text "Still loading..." ]
Lorsque je tente de compiler l'extrait suivant, le compilateur échoue avec l'erreur suivante:
-- TYPE MISMATCH --------- E:\dev\irrelephant-code\client\elm\Views\Projects.elm
Tag `Maybe.Just` is causing problems in this pattern match.
32| Just projects ->
^^^^^^^^^^^^^
The pattern matches things of type:
Maybe a
But the values it will actually be trying to match are:
Model
indiquant que compilateur ne peut pas en déduire que ce Nothing
est une valeur de type Model
(qui à son tour est un alias de type Maybe List Project
).
Qu'est-ce que je fais mal ici? Y a-t-il un moyen de marquer explicitement ce Nothing comme une valeur du type Model?
J'utilise orme v0.18.0
Il est bizarre, vous pouvez le redéfinir comme ça. –
'Nothing' n'est pas un type, le type est' Maybe' – Natim
Ouais, vous avez raison - j'essayais d'abord de définir la chose comme un alias de '' 'Maybe List Product''', mais il n'a pas travailler soit. Il semble que j'ai raté les parenthèses dans celui-ci, parce que '' 'Peut-être List Product''' est différent de' '' Maybe (List Product) '' ' –