如果在 TypeScript 中未定义,则设置默认值

如果在 TypeScript 中未定义,则设置默认值

Set a default value if Undefined in TypeScript

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

索引.ts
let country: string | undefined; const result1 = country ?? 'Germany'; console.log(result1); // 👉️ "Germany"

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

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

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

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

索引.ts
let country: string | undefined; const result2 = country === undefined ? 'Belgium' : country; console.log(result2); // 👉️ "Belgium"


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

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

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

索引.ts
const result2 = country == undefined ? 'Belgium' : country; console.log(result2); // 👉️ "Belgium"

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

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

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

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

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

索引.ts
let country: string | undefined; const result3 = country || 'Denmark'; console.log(result3); // 👉️ "Denmark"

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

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

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

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

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

发表评论