跳至主要內容

避免對可選鍊式操作進行非空斷言

禁止在可選鍊式操作表達式後進行非空斷言。

延伸 "plugin:@typescript-eslint/recommended" ESLint 配置 中啟用此規則。

💡

此規則報告的一些問題可由編輯器 建議.

手動修復。?. 可選鍊式操作表達式在物件為 nullundefined 時會提供 undefined。使用 ! 非空斷言來斷言 ?. 可選鍊式操作表達式的結果為非可空值可能是錯誤的。

在大部分情況下,物件並非可空且不需要使用 ?. 進行屬性查詢,或者 ! 不正確並會引入類型安全漏洞。

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-non-null-asserted-optional-chain": "error"
}
};

在遊樂場嘗試此規則 ↗

範例

foo?.bar!;
foo?.bar()!;
於遊戲場中開啟

選項

此規則無法設定。

何時不用此規則

若專案中的資料型態尚未完全說明特定值是否可為空值,例如您正轉換為 strictNullChecks,此規則可能會產生多份錯誤報告。您不妨考慮於特定情況下改用 ESLint disable 註解,而不完全停用這個規則。

深入閱讀

資源