跳到內容

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 許可證發布。