---
url: /docs/guide/usage/linter/rules/unicorn/no-null.md
---

### 它是做什么的

禁止使用 `null` 字面量，以鼓励改用 `undefined`。

### 为什么这不好？

使用 `undefined` 而不是 `null` 有一些原因。

* 根据经验，大多数开发者对 `null` 和 `undefined` 的使用并不一致，且常常混用，很少有人知道何时该用哪个。
* 同时支持 `null` 和 `undefined` 会使输入验证变得更复杂。
* 使用 `null` 会让 TypeScript 类型更冗长：`type A = {foo?: string | null}` vs `type A = {foo?: string}`。

### 示例

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

```javascript
let foo = null;
```

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

```javascript
let foo;
```

## 配置

此规则接受一个包含以下属性的配置对象：

### checkArguments

type: `boolean`

default: `true`

当设置为 `true` 时，禁止将 `null` 直接作为函数调用或构造函数参数使用。

### checkStrictEquality

type: `boolean`

default: `false`

当设置为 `true` 时，该规则还会检查与 `null` 的严格相等/不等比较（`===` 和 `!==`）。

## 如何使用

## 版本

此规则在 v0.0.21 中添加。

## 参考资料
