Aller au contenu

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.

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 (aussi boolean | undefined, ou booléen facultatif comme force?: boolean) ou dont la valeur par défaut est true ou false

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.

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é.