代码之家  ›  专栏  ›  技术社区  ›  Yanick Rochon

JavaScript函数中可选的解构参数

  •  0
  • Yanick Rochon  · 技术社区  · 5 年前

    我有这个函数签名

    const foo = (arg, { opt1, opt2, opt3 }) => {
       ...
    };
    

    foo("Hello");
    

    但是,我知道

    TypeError:无法解构属性 opt1 “未定义”或“null”的。

    const foo = (arg, options = {}) => {
       const { opt1, opt2, opt3 } = options;
    
       ...
    };
    

    但我想知道是否有一个更内联的替代方案?

    3 回复  |  直到 4 年前
        1
  •  11
  •   Nina Scholz    5 年前

    您可以指定一个默认对象,同时进行一次解构。

    undefined 如果没有第二个参数或 .

    const foo = (arg, { opt1, opt2, opt3 } = {}) => {
       ...
    };
    
        2
  •  6
  •   Saurabh Singh    5 年前

    你能做到的 { opt1, opt2, opt3 } = {}

        3
  •  5
  •   Yash Goyal    5 年前

    您可以:-

    const foo = (arg, { opt1, opt2, opt3 } = {}) => {
    
       ...
    };