2017-08-03 6 views
2

la difficulté et les valeurs démêlant peut-être nullables dans les domaines suivants:et peut-être annulable Nichée

container <- 
    unsafePartial 
    (fromJust <<< toMaybe 
    <$> DOM.querySelector (DOM.QuerySelector "body") 
    (DOM.htmlDocumentToParentNode document)) 

Ce qui me donne l'erreur suivante:

Could not match type

Maybe

with type

Nullable

while trying to match type Maybe Element
with type Nullable t1
while checking that expression (querySelector (QuerySelector "body"))
(htmlDocumentToParentNode document)
has type t0 (Nullable t1)
in value declaration main

where t0 is an unknown type
t1 is an unknown type

J'ai essayé, mais je ne peux pas trouver mon chemin à travers les différents types utilisés ici (le code est originaire de here)

Répondre

1

Je recommanderais de briser un peu.

Commencez avec

do body <- DOM.querySelector (DOM.QuerySelector "body") 
      (DOM.htmlDocumentToParentNode document)) 
    ?whatNext 

Ici, ?whatNext est un trou tapé. Le compilateur vous dira le type inféré du trou, ce qui devrait vous aider à comprendre avec quoi le remplacer.

Notez également que vous pouvez simplifier un peu les choses en appliquant directement unsafePartial à fromJust, pour donner une fonction de type Maybe a -> a.

+0

Oui, finalement je l'ai eu à travailler en appliquant unsafePartial et de Just directement au conteneur dans la dernière ligne. Merci de m'avoir informé des trous tapés, semble très utile, bien que dans ce cas, il suggère le usafeCoerce qui n'a pas fonctionné. – bensnowball

+0

Oui, toutes les suggestions ne fonctionneront pas. Cela signifie simplement qu'il va vérifier le type. –