Ant*_*ong 4 ecmascript-6 eslint
这是我的第一次剪辑:
const planLimits = {plan1: {condition1: 50, ...}}
function initialisePlanLimits(planLimits) {
const limits = new Map();
Object.keys(planLimits).map((planId) => (
const limitMap = new Map(Object.entries(planLimits[planId]));
limits.set(planId, limitMap);
));
return limits;
}
Run Code Online (Sandbox Code Playgroud)
linter 会标记此错误: error Expected to return a value in this function array-callback-return
所以我改成了这个版本:
function initialisePlanLimits(planLimits) {
const limits = new Map();
Object.keys(planLimits).map((planId) => (
limits.set(planId, new Map(Object.entries(planLimits[planId])))
));
return limits;
}
Run Code Online (Sandbox Code Playgroud)
它引发另一个错误 Unexpected parentheses around single function argument having a body with no curly braces arrow-parens
我的问题:
1)我认为我可以通过将 areturn null插入咖喱括号内来修复我的第一个版本。但是有没有更好、更优雅的方式呢?在这种情况下,虚假的 return 语句没有意义
2)为什么第二个版本失败?不是和第一个版本一样吗?
如果我使用forEach而不是map,它不会导致array-callback-returnlint 错误
Object.keys(planLimits).forEach((planId) => (
const limitMap = new Map(Object.entries(planLimits[planId]));
limits.set(planId, limitMap);
));
Run Code Online (Sandbox Code Playgroud)