js 判空值 最佳实践

查看 330|回复 39
mqnu00
OP
  
@Ketteiron js 我目前是用 jsdoc ,你说的 “就算写 js 也可以用 ts 规则检查” 是指这个吗
Xheldon   
只有少数几个人答对了,用 `??`
xuejianxianzun   
空值合并运算符 `??` 是一个逻辑运算符,当左侧的操作数为 `null` 或者 `undefined` 时,返回其右侧操作数,否则返回左侧操作数。
Ketteiron   
@mqnu00 js doc 只能定义静态的简单类型,它没法判断一个变量经过某个逻辑判断后变成了什么模样。
例如一个参数可以同时是值、数组或函数,这很常见,ts 中如果你用 if(typeof 判断出是什么具体类型,数组分支里点号按一下数组的可用函数列表就出来了,函数分支里才能(),逻辑越复杂代码越长,ts 对可读性的帮助越大。
ts 开启 checkJs 后会尽力检查 js 文件每一行代码在上下文里是否正确的,不过帮助有限,如果写上 js doc 就可以更精确地检查类型,再加上 typescript-eslint ,像某个角落漏了 await 也能查出来。
l864494871   
判断 null 用==即可
Valid   
数字 0 在哪里都不是 empty 啊
Valid   
!'' !NaN !null !undefined 都是 true ,所以!a 够用了,除非 a 是[]or{}
zhlssg   
无脑选 _.isNil
rekulas   
一般用!!val 就够了,大部分情况都有效,也不像其他语法糖挑版本
okakuyang   
两个感叹号用了几年,从来没考虑过有没有异常情况,看上面这么多回复感觉有点奇怪了。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部