📚
biomeのルールについて調べてみた
Linter + Formatterとして使用している biome について、ルールを調べてみました。
公式サイトにとてもわかりやすくまとまっているので、詳しくは下記を参考にしていただけると良いと思います。
"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