如果在 TypeScript 中未定义,则设置默认值
Set a default value if Undefined in TypeScript
如果在 TypeScript 中未定义,请使用 nullish 合并运算符 (??) 设置默认值,例如const result = country ?? 'Germany'
. undefined
当左侧的值为or时,无效合并运算符返回其右侧操作数null
。
let country: string | undefined; const result1 = country ?? 'Germany'; console.log(result1); // 👉️ "Germany"
考虑
空值合并运算符 (??)的一种简单方法
是,它允许我们在左侧的值等于undefined
or时提供回退值null
。
如果左侧的值不是undefined
or null
,则运算符按原样返回值。
const result1 = 'hello' ?? 'Germany'; console.log(result1); // 👉️ "hello"
undefined
另一种方法是使用三元运算符显式检查值是否等于
。
let country: string | undefined; const result2 = country === undefined ? 'Belgium' : country; console.log(result2); // 👉️ "Belgium"
如果问号左边的表达式为真,三元运算符返回冒号左边的值,否则返回冒号右边的值
。
country
变量存储了一个值,则三元运算符返回,否则我们返回存储在变量中的值。 undefined
Belgium
country
请注意,我们使用了严格的相等运算符 (===)。您可能还会在网上看到使用松散相等 (==) 的示例。
const result2 = country == undefined ? 'Belgium' : country; console.log(result2); // 👉️ "Belgium"
上述示例之间的区别在于,松散相等 (==) 运算符同时检查null
和undefined
,而严格相等 (===) 仅检查特定值(undefined
在示例中)。
一种简单的可视化方法是使用运算符来比较undefined
和
null
。
console.log(undefined == null); // 👉️ true console.log(undefined === null); // 👉️ false
该示例表明,当使用松散相等运算符 (==) 时,undefined
等于null
。
如果变量存储值,您还可以使用逻辑 OR (||) 运算符提供默认undefined
值。
let country: string | undefined; const result3 = country || 'Denmark'; console.log(result3); // 👉️ "Denmark"
如果左边的
值为假,则逻辑 OR (||)
运算符返回右边的值。
undefined
null
JavaScript(和 TypeScript)中的虚假值是undefined
, null
, 0
,
false
, ""
(空字符串),NaN
(不是数字)。
这意味着如果左边的值是上述 6 个假值中的任何一个,逻辑 OR (||) 运算符将返回右边的值。
另一方面,只有当左边的值为undefined
or时,nullish 合并运算符才会返回右边的值null
。