代码之家  ›  专栏  ›  技术社区  ›  aryzing

为什么在当前作用域中使用与变量同名的属性会被视为隐藏?

  •  1
  • aryzing  · 技术社区  · 6 年前

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

    "no-shadowed-variable": true
    

    当我理解这意味着什么时,我惊讶地发现以下代码片段不符合此规则:

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

    特林特特别指出 showOn 正在隐藏。当这个代码出现时,它看起来像

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

    如何 展示 被跟踪了?

    1 回复  |  直到 6 年前
        1
  •  1
  •   portenez    6 年前

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