2016-06-03 3 views
0

Я только начал изучать Элм, и я застрял в проблеме типа аннотации.Тип вывода в Elm

Этот код работает:

viewInput : String -> Html msg 
viewInput myText = 
    div [ style [("color","red")] ] [ text myText ] 

Это один вызывает исключение компилятора:

viewInput : String -> Html msg 
viewInput myText = 
    input [ type' "text", placeholder myText ] 

Ошибка является

-- TYPE MISMATCH ------------------------------------------------------ form.elm 

The type annotation for `viewInput` does not match its definition. 

62| viewInput : String -> Html msg 
       ^^^^^^^^^^^^^^^^^^ 
The type annotation is saying: 

    String -> Html a 

But I am inferring that the definition has this type: 

    String -> List (Html a) -> Html a 

Detected errors in 1 module. 

ответ

2

Я думаю, что вы просто не хватает некоторых скобок в конце ...

Ваш код должен быть

viewInput : String -> Html msg 
viewInput myText = 
    input [ type' "text", placeholder myText ] [] 

Это происходит потому, что функция input как div делает, хочет на входе два списка, один для атрибутов, один для других Html частей он содержит

+0

это действительно работает, спасибо ! Я копаю в документах, но не могу найти точной причины, по которой мне нужны квадратные скобки. – pietro909

+0

@ pietro909 только что отредактировал ответ с объяснением – marcosh

+0

спасибо! действительно хороший информация. Вам нужно подождать несколько минут, чтобы принять ответ. – pietro909