为了账号安全,请及时绑定邮箱和手机立即绑定

如果既有可选参数又有有默认值参数,参数的顺序又是一定的,怎么才能传第三个参数而不传第二个?

/*typescript*/

function test(a , b ?, c='p3'){

   console.log(a);

   console.log(a);

  console.log(a);

}

#这种情况想改变c却不想传b,是不是没有办法的??


正在回答

4 回答

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)

这样子应该是可以的,不过比较麻烦

0 回复 有任何疑惑可以回复我~

不可同时设置可选参数和默认参数,尽量避免这种场景出现,解决方式可以分开传值,比如柯里化

0 回复 有任何疑惑可以回复我~

这个问题 你实现了吗 我这边也遇到这个问题

0 回复 有任何疑惑可以回复我~

function test(a , b?, c='p3'){
   console.log(a);

   console.log(b);

  console.log(c);

}
test(1,null,'fff');

因为b可选参数处在的位置比较尴尬,在函数里,除了首尾参数外的参数,不传值也要传个空,否则后面的值就会默认为你所传的参数是该参数传值

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
TypeScript入门
  • 参与学习       59374    人
  • 解答问题       99    个

TypeScript入门视频教程包括TypeScript的基本概念、常用语法和高级特性

进入课程

如果既有可选参数又有有默认值参数,参数的顺序又是一定的,怎么才能传第三个参数而不传第二个?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信