避免對可選鍊式操作進行非空斷言
禁止在可選鍊式操作表達式後進行非空斷言。
✅
延伸 "plugin:@typescript-eslint/recommended"
在 ESLint 配置 中啟用此規則。
💡
此規則報告的一些問題可由編輯器 建議.
手動修復。?.
可選鍊式操作表達式在物件為 null
或 undefined
時會提供 undefined
。使用 !
非空斷言來斷言 ?.
可選鍊式操作表達式的結果為非可空值可能是錯誤的。
在大部分情況下,物件並非可空且不需要使用
?.
進行屬性查詢,或者!
不正確並會引入類型安全漏洞。
.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-non-null-asserted-optional-chain": "error"
}
};
在遊樂場嘗試此規則 ↗
範例
選項
此規則無法設定。
何時不用此規則
若專案中的資料型態尚未完全說明特定值是否可為空值,例如您正轉換為 strictNullChecks
,此規則可能會產生多份錯誤報告。您不妨考慮於特定情況下改用 ESLint disable 註解,而不完全停用這個規則。