diff --git a/biome.json b/biome.json index eb0277d..2f80d8b 100644 --- a/biome.json +++ b/biome.json @@ -34,6 +34,17 @@ "nursery": { "noFloatingPromises": "error" }, + "style": { + "noNonNullAssertion": "warn", + "useConsistentArrayType": { + "level": "error", + "options": { "syntax": "shorthand" } + }, + "useConsistentTypeDefinitions": { + "level": "error", + "options": { "style": "interface" } + } + }, "suspicious": { "noConsole": { "level": "error", diff --git a/specs/dev-conventions.md b/specs/dev-conventions.md index 0636313..e8c9ed2 100644 --- a/specs/dev-conventions.md +++ b/specs/dev-conventions.md @@ -127,6 +127,9 @@ doubles, point-virgules toujours, virgules finales partout | `suspicious.noExplicitAny` | interdit `any` explicite (déjà dans `recommended`, listée ici pour la visibilité) — utiliser un type précis ou `unknown` + vérification | | `suspicious.noConsole` (`allow: ["error","warn","info","debug","table","assert"]`) | interdit `console.log` nu ; les niveaux nommés restent autorisés, mais uniquement depuis `LoggerService` (voir plus bas) — le reste du code ne touche jamais `console` directement | | `nursery.noFloatingPromises` | interdit une Promise ni `await`-ée, ni `.then(ok, err)`/`.catch()`, ni `void`-ée, ni `return`-ée — un `useEffect` qui lance un fetch fire-and-forget doit soit avoir un `.catch()`, soit être explicitement `void navigate(...)` | +| `style.noNonNullAssertion` (warn) | déconseille `valeur!` — préférer un vrai contrôle (`if`, `??`, un guard) à l'affirmation "je sais que c'est non-null" | +| `style.useConsistentArrayType` (`syntax: "shorthand"`) | impose `T[]`, jamais `Array` — déjà la syntaxe utilisée partout dans le repo | +| `style.useConsistentTypeDefinitions` (`style: "interface"`) | impose `interface` pour tout type objet, jamais `type X = { ... }` — `type` reste légitime pour une union/intersection/alias, seule la forme objet est concernée | `noFloatingPromises` est une règle *type-aware* (nursery, nécessite Biome ≥ 2.0) — activée directement sous `rules.nursery` sans passer par