PhpStorm警告:参数类型不能分配给参数类型

时间:2016-04-18 20:52:08

标签: javascript jquery this phpstorm each

我在项目中的PhpStorm中的JavaScript文件中看到了警告,我想对此做些什么。我有这样的代码:

<div class="section5">
  <div class="sign2">
    <img src="img/sign2.png" alt="Beauty Secrets Logo" /></div>
  <div class="wrapper">
    <div class="left ">
      <h3>Conact us</h3>
      <p class="paragraph bottom">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
      </p>
    </div>
    <div class="middle ">
      <h3>Conact us</h3>
      <p class="paragraph bottom">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
      </p>
    </div>
    <div class="right ">
      <h3>Conact us</h3>
      <p class="paragraph bottom">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
      </p>
    </div>
  </div>
</div>

在代码中指示的行上,PHP给出了这个警告:

  

参数类型someFunction不能分配给参数类型Number

我明白这意味着什么以及为什么会发出这样的警告:PhpStorm无法知道jQuery在function someFunction() { ... var myArray = [1, 2, 3, ...]; $.each(myArray, function() { someOtherFunction(this); }); //warning on this line .... } /** * @param {Number} value */ function someOtherFunction(value) { ... } 循环回调中重新定义this上下文。我的问题是我能做些什么来暗示这种重新定义正在发生以及.each在这种情况下究竟是什么?

1 个答案:

答案 0 :(得分:0)

function someFunction() {
    ...
    var myArray = [1, 2, 3, ...];
    $.each(myArray, function(i, val) { someOtherFunction(val); });  //warning on this line
    ....
}

http://api.jquery.com/jquery.each/ 这里的jQuery文档显示回调函数的参数实际上是处理值的。传递的第一个参数是数组索引,第二个参数传递给值,这就是你要寻找的。

事情是this永远不会只是一个原始值。 jQuery总是把它包装成一个对象。