向javascript函数传递的参数太少时会收到警告

时间:2014-08-18 13:45:33

标签: javascript jslint jshint

是否有一个工具可以帮助我检测javascript函数何时被传递的参数太少?据我所知,JSLint和JSHint都没有提供此功能。

如果我写的话,请说清楚:

some_method = function(x,y) {
  // ..do stuff
}
some_method(2);

我希望得到警告,我可能不得不传递另一个论点。

2 个答案:

答案 0 :(得分:1)

你不能这样做,所有参数都是可选的,你可以将无限量的参数传递给无参数函数(通过参数数组)。

但您可以使用arguments数组手动测试自己的方法。您必须单独将它添加到每个方法,因为您无法反映方法签名中的参数数量。因此,对于这种特殊情况,您将使用:

function test(x, y) {
  if (arguments.length !== 2)
    {
      console.log('error, invalid amount of args');
    }
}

test(1); // this will trigger the console.log and type the error.

如果你真的需要参数检查,可以使用类似TypeScript的东西,默认情况下需要参数。

答案 1 :(得分:-1)

如果你想在函数中获得一些可选的param,你可以将params作为数组传递,并且可以验证每个数组的值。 像这样:

function action(param)
{
    var total_params = param.length;
    console.log(param);

    // do stuff
}

action(Array('param01',02, true, 'param04'));