如果在 TypeScript 中为 Null,则设置默认值

如果在 TypeScript 中为 Null,则设置默认值

Set a default value if Null in TypeScript

如果在 TypeScript 中为 null,则使用 nullish 合并运算符 (??) 设置默认值,例如const result = role ?? 'developer';. null当左侧的值为or时,无效合并运算符返回其右侧操作数
undefined

索引.ts
const role: string | null = null; const result1 = role ?? 'developer'; console.log(result1); // 👉️ "developer"

考虑
空值合并运算符 (??)的一种简单方法
是,它允许我们在左侧的值等于
nullor时提供回退值undefined

如果左侧的值不是nullor undefined,则运算符按原样返回值。

索引.ts
const result1 = 'accountant' ?? 'developer'; console.log(result1); // 👉️ "accountant"

null另一种方法是使用三元运算符显式检查值是否等于

索引.ts
const role: string | null = null; const result2 = role === null ? 'tester' : role; console.log(result2); // 👉️ "tester"


如果问号左边的表达式为真,三元运算符返回冒号左边的值,否则返回冒号右边的

换句话说,如果role变量存储了一个null 值,则三元运算符返回tester,否则我们返回存储在role变量中的值。

请注意,我们使用了严格的相等运算符 (===)。您可能还会在网上看到使用松散相等 (==) 的示例。

索引.ts
const role: string | null = null; const result2 = role == null ? 'tester' : role; console.log(result2); // 👉️ "tester"

上述示例之间的区别在于,松散相等 (==) 运算符同时检查nullundefined,而严格相等 (===) 仅检查特定值(null在示例中)。

一种简单的可视化方法是使用运算符来比较null
undefined

索引.ts
console.log(null == undefined); // 👉️ true console.log(null === undefined); // 👉️ false

该示例表明,当使用松散相等运算符 (==) 时,null等于undefined

如果变量存储值,您还可以使用逻辑或 (||) 运算符提供默认null值。

索引.ts
const role: string | null = null; const result3 = role || 'designer'; console.log(result3); // 👉️ "designer"

如果左边的
值为假,则
逻辑 OR (||)
运算符返回右边的值。

这与我们在第一个示例中使用的 nullish 合并运算符有点不同,因为逻辑 OR (||) 运算符检查值是否为 falsy,而 nullish 合并运算符 (??) 检查值是否为or nullundefined

JavaScript(和 TypeScript)中的虚假值是undefined, null, 0,
false, ""(空字符串),NaN(不是数字)。

这意味着如果左边的值是上述 6 个假值中的任何一个,逻辑 OR (||) 运算符将返回右边的值。

另一方面,只有当左边的值为nullor时,nullish 合并运算符才会返回右边的值undefined

发表评论