能否通过Lint规则禁止在可选类型中使用||运算符?
用??运算符替代||的代码改造
你要禁止的这段代码存在逻辑隐患:当num传入0时,||会把0当成假值返回10,但0本身是有效的数值类型,不符合参数undefined|number的设计意图。
直接替换成空值合并运算符??即可,它只会在值为null或undefined时返回默认值,改造后的代码如下:
function(num: undefined|number) { return num ?? 10; }
这样修改后,只有当num是undefined时才会返回10,传入0、1这类有效数值时会正常返回原值,完全符合参数的类型约束。
内容的提问来源于stack exchange,提问作者yo_nas
相关产品推荐
相关产品推荐

