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