将默认值分配给可选字符串的简便方法?

问题描述 投票:0回答:2

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

const someName = data.someName

我想使用该变量构造一个String,并在它为null时为其分配一个默认值。是否有内联或速记方式?

const someString = "You received something from " + someName
typescript
2个回答
1
投票

我喜欢模板文字。也许您可以将其与三元运算符结合使用,以得到具有nullundefined值的默认值。

尝试以下操作:

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

我希望有帮助!


1
投票

TypeScript 3.7 introduced support代表proposed JavaScript "nullish coalescing operatior" ??。语法看起来像??,并且计算结果为someName ?? defaultValue,除非它是someNamenull,在这种情况下,其计算结果为undefined。 (因此,“空”表示defaultValuenull。)这是一个undefined,因此,如果short-circuiting operator不为空,则someName不会被求值。

在TypeScript 3.7之前,您始终可以使用defaultValue获得相似的结果:ternary operator

但是如果您不特别关心someName != null ? someName : defaultValuenull,并且不介意使用默认值(如果undefined是任何someName值(例如空字符串falsy),那么您可以使用""the logical "or" operator,这也会短路。

其中任何一个都应该为您工作。好的,希望能有所帮助;祝你好运!

someName || defaultValue

© www.soinside.com 2019 - 2024. All rights reserved.