You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript内联匿名类型语法:Lodash map省略return的写法问询

解决Lodash Map方法的隐式返回写法问题

嘿,完全懂你的感受!用隐式返回的箭头函数确实能让代码更简洁,和groupBy的风格统一起来。你遇到的其实是箭头函数里对象字面量的语法小陷阱。

先看你原来的map写法:

.map((group, key) => { return { key: key, group: group } })

要改成隐式返回的话,不能直接去掉return和大括号——因为如果直接写(group, key) => { key: key, group: group },这里的{}会被JavaScript解析成函数体的花括号,而不是你想要返回的对象字面量,这会直接导致语法错误。

正确的隐式返回写法

只需要把要返回的对象用一对小括号包裹起来,告诉JS这是一个要返回的表达式,而不是函数体:

.map((group, key) => ({ key: key, group: group }))

进一步简化(ES6属性简写)

因为你的对象键名和变量名完全一致,还可以用ES6的属性简写语法,让代码更清爽:

.map((group, key) => ({ key, group }))

完整的代码示例

最终你的代码会变成这样:

var results = _(items)
  .groupBy((i) => i.key)
  .map((group, key) => ({ key, group }))
  .value();

简单总结下箭头函数隐式返回的规则:

  • 当函数体是单个表达式时,可以省略{}和return,直接返回表达式结果
  • 如果返回的是对象字面量,必须用()把对象包起来,避免和函数体的{}混淆

内容的提问来源于stack exchange,提问作者Bas Hamer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:29:49