Skip to content
← Back to rules

eslint/no-sparse-arrays 正确性

This rule is turned on by default.

它做了什么

禁止使用稀疏数组。

为什么这是不好的?

考虑以下示例:

javascript
const items = [, ,];

尽管此示例中的 items 数组长度为 2,但实际上 items[0]items[1] 中都没有值。数组字面量中仅包含逗号却仍然合法,同时数组长度被设置但实际元素值未定义,这使得稀疏数组对许多开发者来说非常容易混淆。

由于稀疏数组带来的混淆足够严重,因此建议除非你确定其在代码中有实际用途,否则应避免使用它们。

示例

此规则的错误代码示例:

javascript
var items = [, ,];
javascript
var colors = ["red", , "blue"];

此规则的正确代码示例:

javascript
var items = [];

// 尾随逗号(位于最后一个元素之后)不是问题

javascript
var colors = ["red", "blue"];

如何使用

要通过配置文件或 CLI 启用此规则,可以使用:

json
{
  "rules": {
    "no-sparse-arrays": "error"
  }
}
bash
oxlint --deny no-sparse-arrays

参考资料