Skip to content
← Back to rules

unicorn/text-encoding-identifier-case Style

🛠️ An auto-fix is available for this rule.

作用

此规则强制文本编码标识符的大小写保持一致,具体如下:

  • 使用 'utf8',而不是 'UTF-8''utf-8'(如果启用了 withDash,则允许 'utf-8'
  • 使用 'ascii',而不是 'ASCII'

为什么这不好?

编码标识符大小写不一致会降低代码可读性,并可能在整个代码库中造成细微的混淆。虽然 ECMAScript 或 Node.js 并未严格强制大小写,但使用小写是惯例且被广泛认可的风格。

示例

此规则的错误代码示例:

javascript
import fs from "node:fs/promises";
async function bad() {
  await fs.readFile(file, "UTF-8");
  await fs.readFile(file, "ASCII");
  const string = buffer.toString("utf-8");
}

此规则的正确代码示例:

javascript
import fs from "node:fs/promises";
async function good() {
  await fs.readFile(file, "utf8");
  await fs.readFile(file, "ascii");
  const string = buffer.toString("utf8");
}

当使用 { "withDash": true } 时,此规则的正确代码示例:

javascript
import fs from "node:fs/promises";
async function good() {
  await fs.readFile(file, "utf-8");
  await fs.readFile(file, "ascii");
  const string = buffer.toString("utf-8");
}

配置

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

withDash

type: boolean

default: false

如果为 true,优先使用 utf-8 而不是 utf8

如何使用

To enable this rule using the config file or in the CLI, you can use:

json
{
  "rules": {
    "unicorn/text-encoding-identifier-case": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  rules: {
    "unicorn/text-encoding-identifier-case": "error",
  },
});
bash
oxlint --deny unicorn/text-encoding-identifier-case

版本

此规则在 v0.0.15 中添加。

参考资料