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