我正在使用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' .......
有没有办法解决它?
答案 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
对于这些情况非常有用。如果没有这个选项,第三方库中的事件处理函数签名将非常难以使用。