如果你在编写 JavaScript 或 TypeScript 代码时,经常需要检查变量是否为 null
或 undefined
,并实现相应的默认值逻辑,那么 npm 包 existential-default
可以帮助你简化这个过程。这是一个小巧但功能强大的库,在日常的前端开发中非常方便。
安装和导入
你可以使用以下命令安装 existential-default
:
npm install existential-default
然后在你的代码中导入它:
const defaultTo = require('existential-default');
或者在 TypeScript 中:
import defaultTo from 'existential-default';
示例
假设你要从某个 API 获取用户数据,并设置默认值。通常情况下,我们会这样写:
-- -------------------- ---- ------- -------- ------------------- -------- ----------------- - ------ ----------------------------- -------------- -- ---------------- ---------- -- - ----- ---- - --------- -- ---------- ----- --- - -------- -- --- ----- ------ - ----------- --- --------- - ----------- - --------- ------ - ----- ---- ------ -- --- -展开代码
上面的代码中,我们使用了三种不同的方式来设置默认值。第一行使用了逻辑运算符 ||
来判断 name
是否为空值;第二行使用了 Nullish Coalescing 运算符 ??
来判断 age
是否为 null
或 undefined
;第三行使用了三元运算符来判断 gender
是否为 undefined
。
但是,如果你使用 existential-default
,这段代码可以简化为:
-- -------------------- ---- ------- ------ --------- ---- ---------------------- -------- ------------------- -------- ----------------- - ------ ----------------------------- -------------- -- ---------------- ---------- -- -- ----- -------------------- ----------- ---- ------------------- ---- ------- ---------------------- ---------- ---- -展开代码
使用 defaultTo
函数,我们可以在一行中实现变量的检查和默认值的设置。如果 data.name
为 null
或 undefined
,则返回 'Unknown'
;如果 data.age
为 null
或 undefined
,则返回 18
;如果 data.gender
为 null
或 undefined
,则返回 'Secret'
。
深度和学习
除了上面的例子外,existential-default
还支持更多的用法,例如:
数组的默认值
const arr1 = []; defaultTo(arr1[0], 'default value'); // 返回 'default value' const arr2 = [1, 2, 3]; defaultTo(arr2[0], 'default value'); // 返回 1
对象属性的默认值
const obj1 = {}; defaultTo(obj1.property, 'default value'); // 返回 'default value' const obj2 = { property: 'value' }; defaultTo(obj2.property, 'default value'); // 返回 'value'
自定义判断函数
function isNegativeNumber(value: any): boolean { return typeof value === 'number' && value < 0; } defaultTo(-1, 0, isNegativeNumber); // 返回 -1 defaultTo(1, 0, isNegativeNumber); // 返回 0 defaultTo(undefined, 0, isNegativeNumber); // 返回 0
使用自定义的判断函数,你可以根据实际情况来进行更灵活的默认值设置。
指导意义
existential-default
虽然只是一个小巧的库,但它能够帮助我们简化代码逻辑,提高代码的可读性和健壮性。如果你经常需要处理变量的默认值问题,不妨试试这个库,并将它应用到你的项目中。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/56548