function foo(a, opt_b) {
opt_b = opt_b || 1;
...
}
foo(1); // IntelliJ will yell at me, saying "Invalid number of parameters, expected 2"
有沒有辦法記錄foo()
這樣IntelliJ不會吼我?我可以告訴IntelliJ(10.5)不要警告未傳遞可選的JavaScript方法參數嗎?
function foo(a, opt_b) {
opt_b = opt_b || 1;
...
}
foo(1); // IntelliJ will yell at me, saying "Invalid number of parameters, expected 2"
有沒有辦法記錄foo()
這樣IntelliJ不會吼我?我可以告訴IntelliJ(10.5)不要警告未傳遞可選的JavaScript方法參數嗎?
使用的JavaDoc風格的註釋爲JavaScript,你可以聲明參數爲可選的括號[]周圍:
/**
* My function
* @param [optionalParam] An optional parameter
*/
myFunction: function(optionalParam) {
//...
},
不錯的解決方案,但如果你使用Google的閉包編譯器,那麼你可能不想使用這種符號,因爲它是不兼容的,IIRC。 – James 2012-08-07 20:48:22
您可以通過檢查選項JS更改設置:
函數的參數太多 - 是不是有關函數的檢查有很多參數'f(a,b,c,d,e)',而不是關於調用函數和不傳遞可選參數?這個設置是關閉的,所以不能這樣。我正在想辦法記錄一個可選的參數。 – ripper234 2012-02-27 13:11:13
「的JavaScript>常規>簽名不匹配問題」是檢查設置,將禁用不正確的用戶號碼的 - 參數警告你。不幸的是,它不僅影響參數數量。根據IntelliJ IDEA內部的描述,它「檢查稱爲函數參數的JavaScript,返回值,指定的表達式是正確的類型,驗證在JavaScript,html或jsp文件中起作用。」
根據http://usejsdoc.org/tags-param.html有使用註釋來聲明兩種方式作爲可選參數:
/**
* @param {string} [somebody] - Somebody's name.
*/
function sayHello(somebody) {
if (!somebody) {
somebody = 'John Doe';
}
alert('Hello ' + somebody);
}
和
/**
* @param {string=} somebody - Somebody's name.
*/
function sayHello(somebody) {
if (!somebody) {
somebody = 'John Doe';
}
alert('Hello ' + somebody);
}
兩種方式都適合我。
除了切換到CoffeeScript,也就是說。 – ripper234 2012-02-27 12:22:17