Reactjs 为什么在当前范围内使用与变量同名的道具会被视为阴影?

Reactjs 为什么在当前范围内使用与变量同名的道具会被视为阴影?,reactjs,tslint,Reactjs,Tslint,我目前正在将tslint与tslint:recommended一起使用,这意味着不允许阴影: "no-shadowed-variable": true 虽然我理解这意味着什么,但我惊讶地发现以下代码片段不符合此规则: const createMenuItem = (iconElement, menuItem, showOn) => ( <SMenuItemContent showOn={showOn}> {iconElement} {menuItem}

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

"no-shadowed-variable": true
虽然我理解这意味着什么,但我惊讶地发现以下代码片段不符合此规则:

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

shown
是如何被隐藏的?

也许您在同一个文件的更大范围(文件级别)上定义了
shown
?。在我看来,它应该自己工作。

createMenuItem
一个React组件吗?如果你从道具中解构变量,你会得到同样的结果吗<代码>常量createMenuItem=({IConeElement,menuItem,showOn})=>(…)
var createMenuItem = function createMenuItem(iconElement, menuItem, showOn) {
  return React.createElement(
    SMenuItemContent,
    { showOn: showOn },
    iconElement,
    menuItem
  );
};