在记录中实例化Svg msg元素列表时出现奇怪的elm类型错误

在记录中实例化Svg msg元素列表时出现奇怪的elm类型错误,elm,Elm,以下代码: import Svg exposing (..) import Window exposing (..) init_size : Model msg -> Size init_size _ = { width = 800, height = 600 } type alias Model msg = { extra_size : Int , size : Size , child_elements : List (Svg msg)

以下代码:

import Svg exposing (..)
import Window exposing (..)


init_size : Model msg -> Size
init_size _ =
    { width = 800, height = 600 }


type alias Model msg =
    { extra_size : Int
    , size : Size
    , child_elements : List (Svg msg)
    }

init_renderSpace : Model msg
init_renderSpace model =
    { extra_size = 40
    , size = init_size model
    , child_elements = []
    }
,生成了一条我无法真正理解的奇怪错误消息。有人知道我做错了什么吗

这是错误消息:

-- TYPE MISMATCH ----------------------------------------------------- space.elm

The definition of `init_renderSpace` does not match its type annotation.

21| init_renderSpace : Model msg
22| init_renderSpace model =
23|>    { extra_size = 40
24|>    , size = init_size model
25|>    , child_elements = []
26|>    }

The type annotation for `init_renderSpace` says it is a:

    Model msg

But the definition (shown above) is a:

    Model msg
    -> { child_elements : List (Svg msg), extra_size : Int, size : Size }

Hint: It looks like a function needs 1 more argument.

Hint: The type annotation says there are NO arguments, but there is 1 argument
named in the definition. It is best practice for each argument in the type to
correspond to a named argument in the definition, so try that first!

基本上,我试图创建一个记录,其中包含一个基本上是svg节点列表的参数。当我尝试用空列表初始化模型时,我得到一个错误

错误消息意味着
init_renderSpace
的类型定义是
Model msg
,但其实现是
Model msg->Model msg
。换句话说,您是说
init_renderSpace
是一个模型,但它实际上是一个函数,它接受一个模型并返回一个模型

因为您没有在
init\u size
中使用任何参数,所以我将从
init\u size
init\u renderSpace
中删除这些参数:

init_size : Size
init_size =
    { width = 800, height = 600 }

init_renderSpace : Model msg
init_renderSpace =
    { extra_size = 40
    , size = init_size
    , child_elements = []
    }

错误消息表示
init_renderSpace
的类型定义是
Model msg
,但其实现是
Model msg->Model msg
。换句话说,您是说
init_renderSpace
是一个模型,但它实际上是一个函数,它接受一个模型并返回一个模型

因为您没有在
init\u size
中使用任何参数,所以我将从
init\u size
init\u renderSpace
中删除这些参数:

init_size : Size
init_size =
    { width = 800, height = 600 }

init_renderSpace : Model msg
init_renderSpace =
    { extra_size = 40
    , size = init_size
    , child_elements = []
    }