为什么在当前作用域中使用与变量同名的prop会视为阴影?

时间:2018-07-20 13:26:19

标签: reactjs tslint

我目前正在将tslint与tslint:recommended一起使用,这意味着不允许阴影:

"no-shadowed-variable": true

虽然我理解这意味着什么,但我惊讶地发现以下代码段不符合该规则:

const createMenuItem = (iconElement, menuItem, showOn) => (
  <SMenuItemContent showOn={showOn}>
    {iconElement}
    {menuItem}
  </SMenuItemContent>
);

具体地说,tslint指出showOn被遮盖了。编译此代码后,它看起来像

var createMenuItem = function createMenuItem(iconElement, menuItem, showOn) {
  return React.createElement(
    SMenuItemContent,
    { showOn: showOn },
    iconElement,
    menuItem
  );
};

showOn的阴影如何?

1 个答案:

答案 0 :(得分:1)

也许您在更大范围(文件级别)的同一文件上定义了showOn?在我看来,这应该自己解决。