跳至主要内容

no-non-null-asserted-optional-chain

禁止在可选链表达式后使用非空断言。

💡

此规则报告的一些问题可以通过编辑器 建议 手动修复。

?. 可选链表达式在对象为 nullundefined 时提供 undefined。使用 ! 非空断言来断言 ?. 可选链表达式的结果是非空,这很可能是错误的。

大多数情况下,要么对象不是可空,不需要 ?. 来进行属性查找,要么 ! 是错误的,并引入了类型安全漏洞。

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

在游乐场中尝试此规则 ↗

示例

foo?.bar!;
foo?.bar()!;
在游乐场中打开

选项

此规则不可配置。

何时不使用它

如果项目的类型尚未完全描述某些值是否可空,例如,如果正在过渡到 strictNullChecks,则此规则可能会产生许多错误报告。可以考虑使用 ESLint 禁用注释 来处理这些特定情况,而不是完全禁用此规则。

进一步阅读

资源