ddd-ts-kit/clean-no-flag-argument
Identifiant d'architecture : clean/no-flag-argument. Sévérité par défaut : warn dans recommended, error dans strict.
S'applique à : les méthodes publiques des classes de domain/, et execute dans application/ ; tests exclus.
Pourquoi
Section intitulée « Pourquoi »Un paramètre booléen dit que la méthode fait deux choses. L'appel se lit close(true) et personne ne sait ce qui est vrai.
- un paramètre typé
boolean(aussiboolean | undefined, ou booléen facultatif commeforce?: boolean) ou dont la valeur par défaut esttrueoufalse
Incorrect :
class Invoice { close(force: boolean): void {}}Correct :
class Invoice { close(): void {} forceClose(reason: string): void {}}Les classes nommées ...Command ou ...Query sont des messages et transportent des données : elles sont exemptées. Les méthodes privées et les constructeurs sont exemptés.
Aucune.
rules."clean/no-flag-argument" à off dans ddd-ts-kit.config.json désactive la règle, et // ddd-ts-kit-disable-next-line clean/no-flag-argument -- <reason> désactive une ligne, exactement comme pour ddd-ts-kit check.
- Le type est lu dans l'annotation, pas inféré :
flag = isReady()n'est pas vu. - Les fonctions hors des classes ne sont pas jugées.
- Quand le fichier ne relève d'aucune couche connue de
ddd-ts-kit.config.json(un fichier hors d'un contexte), la règle se tait.
Avec le checker de la CLI
Section intitulée « Avec le checker de la CLI »ddd-ts-kit check approche cette règle sur le texte du fichier et reste le garde-fou rapide pendant l'écriture. Cette règle fait autorité.