eslint/no-unsafe-optional-chaining 正确性
它的作用
禁止在不允许 undefined 值的上下文中使用可选链
为什么这是个问题?
可选链(?.)表达式可能会短路并返回 undefined。 因此,将一个已求值的可选链表达式当作函数、对象、数字等处理, 可能导致 TypeError 或意外结果。例如:
示例
此规则的错误代码示例:
javascript
var obj = undefined;
1 in obj?.foo; // TypeError
with (obj?.foo); // TypeError
for (bar of obj?.foo); // TypeError
bar instanceof obj?.foo; // TypeError
const { bar } = obj?.foo; // TypeError配置
此规则接受一个配置对象,包含以下属性:
disallowArithmeticOperators
type: boolean
默认值: false
禁止对可选链表达式进行算术运算。 如果为 true,则此规则会警告对可选链表达式进行可能产生 NaN 的算术运算。
如何使用
通过配置文件或命令行工具启用此规则,可以使用:
json
{
"rules": {
"no-unsafe-optional-chaining": "error"
}
}bash
oxlint --deny no-unsafe-optional-chaining