javascript - PhpStorm警告: argument type not assignable to parameter type

标签 javascript jquery this phpstorm each

我在项目中的 PhpStorm 中的 JavaScript 文件中看到警告,我想对此采取措施。我有这样的代码:

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

/**
 * @param {Number} value
 */
function someOtherFunction(value) {
    ...
}

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

Argument type someFunction is not assignable to parameter type Number

我确实理解它的含义以及为什么给出此警告:PhpStorm 无法知道 jQuery 在 .each 循环回调中重新定义了 this 上下文。我的问题是我可以做什么来暗示这种重新定义正在发生以及在这种情况下 this 到底是什么?

最佳答案

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 总是将其包装为一个对象。

关于javascript - PhpStorm警告: argument type not assignable to parameter type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36704073/

相关文章:

javascript - 如何运行 module.exports 中的属性?

javascript - 如何在回调中访问正确的“this”?

javascript - 在 javascript 类中调用函数

javascript - 可以转换由express static提供的文件吗?或者流式传输需求?

javascript - 使 Angular 功能可供所有 Controller 使用

javascript - $.mobile.changePage 通过 AJAX 加载后的回调函数?

javascript - IE浏览器连续提交表单

javascript - Grails 将 JSON 发送为 "text",但 IE 加载其 ajax 的 URL 并显示其响应 : why?

javascript - 跨域 $.ajax 调用引发 ajaxError?

jquery - Javascript/jQuery 动画到动态高度?