代码之家  ›  专栏  ›  技术社区  ›  lurning too koad

将默认值分配给可选字符串的快捷方式?

  •  0
  • lurning too koad  · 技术社区  · 5 年前

    我从可选类型的网络调用中读取了一个变量 String :

    const someName = data.someName
    

    我想建立一个 字符串 使用该变量并在 null . 有没有内联或速记的方式来做这个?

    const someString = "You received something from " + someName
    
    2 回复  |  直到 5 年前
        1
  •  1
  •   jcalz    5 年前

    TypeScript 3.7 introduced support 对于 proposed JavaScript "nullish coalescing operatior" ?? . 语法看起来像 someName ?? defaultValue 并评估为 someName 除非那是 null undefined ,在这种情况下,它的计算结果为 defaultValue . (因此,“无效”是指 无效的 未定义 )这是一个 short-circuiting operator 所以如果 名字 则为非空 默认值 根本不会被评估。

    在TypeScript3.7之前,您可以始终使用 ternary operator 为了达到类似的效果: someName != null ? someName : defaultValue .

    但如果你不特别关心 无效的 未定义 不介意使用默认值,如果 名字 有吗 falsy 值(如空字符串 "" ),然后您可以使用 the logical "or" operator : someName || defaultValue ,也会短路。

    任何一个都应该为你工作。好吧,希望能帮上忙;祝你好运!

    Link to code

        2
  •  1
  •   norbitrial    5 年前

    我喜欢模板文字。也许你可以把它和三元运算符结合起来,一旦它有了一个默认值 null undefined 价值。

    请尝试以下操作:

    const data = {};
    const someString = `You received something from ${data.someName ? data.someName : 'your default value'}`;
    console.log(someString);

    请在此处进一步阅读:

    1. Template literals (Template strings)
    2. Conditional (ternary) operator

    我希望这能有帮助!

    推荐文章