未使用的' x'在函数参数中,但是' x'需要 - JSLint错误

时间:2015-05-11 12:35:40

标签: angularjs jslint

我正在使用AngularJS分析我的JSLint代码。

很多时候,我的功能有多个论点,例如:

$rootScope.$on('$stateChangeSuccess', function (ev, toState, toParams, fromState, fromParams) {
    // code that uses toState, toParams, fromState, fromParams
    // but does touch use ev
})

我需要多次指定所有参数,因为我使用的是最后一个参数。

因此,不使用其他参数,但仍需要。并且JSLint会抛出错误,例如:

未使用' ev' .......

有没有办法解决它?

1 个答案:

答案 0 :(得分:0)

当然!您可以使用JSLint directive

/*jslint unparam:true, sloppy:true, white:true, devel:true */
/*global $rootScope*/
$rootScope.$on('$stateChangeSuccess', function (ev, toState, toParams, fromState, fromParams) {
    // I'm putting in this line so that JSLint doesn't complain about an empty block
    // and also so that I can mimic your described situation.
    console.log(toState, toParams, fromState, fromParams);
});

在这种情况下,unparam:true是解决此特定问题的问题。 (devel允许使用console和其他一些对象。white允许任何空格,sloppy允许您跳过"use strict";。最后两个是个人偏好。)

如果你只想为这个单一功能(或代码的某个子集)关闭它,你可以像这样关闭和打开unparam

/*jslint sloppy:true, white:true, devel:true */
/*global $rootScope*/

/*jslint unparam:true */
$rootScope.$on('$stateChangeSuccess', function (ev, toState, toParams, fromState, fromParams) {
    console.log(toState, toParams, fromState, fromParams);
});
/*jslint unparam:false */

unparam对于这些情况非常有用。如果没有这个选项,第三方库中的事件处理函数签名将非常难以使用。