---
url: /docs/guide/usage/linter/rules/typescript/no-non-null-assertion.md
---

### 作用

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

### 为什么这不好？

TypeScript 的 `!` 非空断言运算符会向类型系统断言某个表达式是非空的，也就是不是 `null` 或 `undefined`。使用断言向类型系统告知新信息，往往表明代码并非完全类型安全。通常更好的做法是组织程序逻辑，让 TypeScript 能够理解值何时可能为可空。

### 示例

此规则的**错误**代码示例：

```ts
x!;
x!.y;
x.y!;
```

此规则的**正确**代码示例：

```ts
x;
x?.y;
x.y;
```

## 如何使用

## 版本

此规则于 v0.5.0 中添加。

## 参考资料
