函数参数中未使用 'x',但需要 'x' - JSLint 错误
Unused 'x' in function arguments, but 'x' is needed - JSLint error
我正在用 JSLint
分析我的 AngularJS
代码。
很多时候,我的函数有多个参数,例如:
$rootScope.$on('$stateChangeSuccess', function (ev, toState, toParams, fromState, fromParams) {
// code that uses toState, toParams, fromState, fromParams
// but does touch use ev
})
很多时候我需要指定所有参数,因为我使用最后一个参数。
因此没有使用其他参数,但仍然需要。并且 JSLint 会抛出错误,例如:
Unused 'ev'.......
有办法解决吗?
好的!您可以使用 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
对这些情况非常有用。如果没有这个选项,第三方库中像这样的事件处理函数签名将很难使用。
我正在用 JSLint
分析我的 AngularJS
代码。
很多时候,我的函数有多个参数,例如:
$rootScope.$on('$stateChangeSuccess', function (ev, toState, toParams, fromState, fromParams) {
// code that uses toState, toParams, fromState, fromParams
// but does touch use ev
})
很多时候我需要指定所有参数,因为我使用最后一个参数。
因此没有使用其他参数,但仍然需要。并且 JSLint 会抛出错误,例如:
Unused 'ev'.......
有办法解决吗?
好的!您可以使用 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
对这些情况非常有用。如果没有这个选项,第三方库中像这样的事件处理函数签名将很难使用。