跳至主要内容

禁止使用非空断言

禁止使用!后缀运算符进行非空断言。

🔒

"plugin:@typescript-eslint/strict"中扩展ESLint 配置将启用此规则。

💡

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

TypeScript 的!非空断言运算符断言类型系统表达式是非空的,即不是nullundefined。使用断言来告诉类型系统新的信息通常是代码不完全类型安全的标志。通常最好构建程序逻辑,以便 TypeScript 能够理解何时值可能是可空的。

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

在游乐场中尝试此规则 ↗

示例

interface Example {
property?: string;
}

declare const example: Example;
const includesBaz = example.property!.includes('baz');
在游乐场中打开

选项

此规则不可配置。

何时不使用它

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

资源