在switch / case中重复变量名

时间:2016-08-25 18:54:21

标签: ecmascript-6 babeljs

最近开始使用EcmaScript 6/2015并使用Babel编译我的代码。我也在使用Redux,所以编写一个如下所示的 reducer

const reducer = (state, action) => {
  switch (action.type) {
    case ACTION1:
      const myvar = ''; // do something to determine myvar
      return { ...state, myvar };
    case ACTION2:
      const myvar = ''; // do something to determine myvar
      return { ...state, myvar };
    default:
      return state;
  }
};

Babel REPL

显然,真实的东西会做更高级的事情,这只是说明了这个想法。我的.babelrc包含:

{
  "plugins": ["transform-object-rest-spread"],
  "presets": ["es2015"]
}

现在,巴贝尔告诉我:

  

重复声明“myvar”

我不明白。我认为两个case块都会创建一个不同的范围,因此无论出于什么原因都可以重用变量名。我的期望是错的,或者这确实应该在EcmaScript 6/2015中起作用并且它是某种错误吗?

0 个答案:

没有答案