如果既有可選參數(shù)又有有默認值參數(shù),參數(shù)的順序又是一定的,怎么才能傳第三個參數(shù)而不傳第二個?
/*typescript*/
function test(a , b ?, c='p3'){
? ?console.log(a);
? ?console.log(a);
??console.log(a);
}
#這種情況想改變c卻不想傳b,是不是沒有辦法的??
/*typescript*/
function test(a , b ?, c='p3'){
? ?console.log(a);
? ?console.log(a);
??console.log(a);
}
#這種情況想改變c卻不想傳b,是不是沒有辦法的??
2017-08-28
舉報
2020-03-05
let?defaultParam={
????a:1,
????
????b:2,
????
????c:3
????
????};
????
????function?test(a?,?b={},?c='p3'){
????
????let?paramSet?=?Object.assign(defaultParam,?b);
????
????b=paramSet?.b;
????
????console.log(a?,?b,?c);
????
????}
????
????test(1,{},23)
????
????test(1,{b:1464},23)
這樣子應(yīng)該是可以的,不過比較麻煩
2019-11-03
不可同時設(shè)置可選參數(shù)和默認參數(shù),盡量避免這種場景出現(xiàn),解決方式可以分開傳值,比如柯里化
2019-09-16
這個問題 你實現(xiàn)了嗎 我這邊也遇到這個問題
2017-08-28
function test(a , b?, c='p3'){
?? console.log(a);
?? console.log(b);
? console.log(c);
}
test(1,null,'fff');
因為b可選參數(shù)處在的位置比較尷尬,在函數(shù)里,除了首尾參數(shù)外的參數(shù),不傳值也要傳個空,否則后面的值就會默認為你所傳的參數(shù)是該參數(shù)傳值