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