我正在尝试学习 ReasonML,并在Reason React Hacker News ( ) 的来源中遇到了这一行src/CommentList.re
:
type action =
| Toggle(option(string));
下一次出现的action
是作为函数中的参数reducer
:
reducer: (action, state) =>
switch action {
| Toggle(commentId) =>
ReasonReact.Update({
collapsed_comments: toggleComment(state.collapsed_comments, commentId)
})
}
我浏览了文档,但没有看到任何提及这种结构或实践的内容(也许我想念它?)。这仅仅是让参数和类型共享相同名称然后依靠类型推断将参数action
与类型匹配的样式约定action
吗?还是这里有某种语法糖?
为什么不通过显式命名类型来减少混淆actionType
呢?或者,在 Reason 社区中,让类型和参数同名的行为是某种新兴的风格约定?