跳过内容

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

参考

根据 MIT 许可证发布。