📚

biomeのルールについて調べてみた

2024/10/04に公開

Linter + Formatterとして使用している biome について、ルールを調べてみました。
公式サイトにとてもわかりやすくまとまっているので、詳しくは下記を参考にしていただけると良いと思います。
https://biomejs.dev/ja/linter/rules/

 "style": {
        "useTemplate": "error", // 文字列の連結よりもテンプレート・リテラルを優先する。
        "useImportType": "error", // 型に対するインポートは`import type`の使用を促進する。
        "noUnusedTemplateLiteral": "error", // 補間や特殊文字処理が不要な場合は、テンプレート・リテラルを使用しない。
        "useNodejsImportProtocol": "error", // Node.js 組み込みモジュールの node: プロトコルの使用を強制します。
        "useNumberNamespace": "error", // グローバルプロパティの代わりに Numberプロパティを使用する。
        "noNonNullAssertion": "error", // ポストフィックス演算子 !を使用して非NULLアサーションを許可しない。
        "noInferrableTypes": "error", // リテラル式で初期化された変数、パラメータ、クラス・プロパティに対する型アノテーションを禁止する。
        "noUselessElse": "error" // ifブロックが早期にbarake した場合、elseブロックを許可しない。
      },

 "complexity": {
        "useLiteralKeys": "error", // プロパティへのリテラル・アクセスを、計算プロパティ・アクセスよりも強制する。
        "useOptionalChain": "error", // 連鎖する論理式の代わりに、簡潔なオプショナル・チェインの使用を強制する。
        "noUselessSwitchCase": "error", // switch文での無駄なcaseを禁止する。
        "useFlatMap": "error", // map().flat()を併用する場合は、.flatMap()の使用を促す。
        "noForEach": "error",  // Array.forEachの代わりにfor...of文を使用する。
        "noBannedTypes": "error" // Disallow primitive type aliases and misleading types.
      },
 "performance": {
        "noDelete": "error", // delete演算子の使用を禁止する。
        "noAccumulatingSpread": "error" // アキュムレータでのスプレッド(...)構文の使用を禁止する。
      },
      "suspicious": {
        "noExplicitAny": "error", // any型の使用を許可しない。
        "noArrayIndexKey": "error", // キーに配列インデックスを使用しない。
        "noSuspiciousSemicolonInJsx": "warn", // JSX要素内の「間違った」セミコロンの可能性を検出します。
        "noDoubleEquals": "error", //  === and !==. の使用を義務付ける。
        "noConsole": "error", // コンソールの使用を禁止する。
        "noSkippedTests": "error" // 無効なテストを許可しない
      },
      "a11y": {
        "useValidAnchor": "error", // すべてのアンカーが有効で、ナビゲート可能な要素であることを強制する。
        "useSemanticElements":"error" // JSX要素のrole属性の使用を検出し、代わりにセマンティック要素の使用を提案します。
      },
      "correctness": {
        "useJsxKeyInIterable":"error", // イテレータ/コレクション・リテラルでキー・プロップスが欠落していることを許可しない。
        "useExhaustiveDependencies": "error", // Reactフックですべての依存関係が正しく指定されるようにする。
        "noUnusedImports": "error", // 未使用のインポートを許可しない。
        "useHookAtTopLevel": "error" // すべてのReactフックがトップレベル・コンポーネントの関数から呼び出されるようにする。
      }

Discussion