ESLint-Plugin zum Umformen negativer boolescher Ausdrücke mit den De-Morgan-Gesetzen
(github.com/azat-io)Veröffentlichung von De Morgan für ESLint.
Dieses Plugin wandelt logische Ausdrücke in JavaScript-Code in einfachere und leichter verständliche Formen um.
Von hier:
!(a && !b && c <= d)
zu diesem Ausdruck:
!a || b || c > d
2 Kommentare
Ich finde, Bedingungen sollte man so schreiben, dass sie leicht zu lesen und zu verstehen sind.
Klingt gut! Wie vergleicht ihr eigentlich, was zwischen zwei ASTs besser ist?
Wenn man zum Beispiel die äquivalenten Ausdrücke
(!a || !b || !c)und!(a && b && c)anhand der AST-Tiefe vergleicht, ist Ersteres günstiger, nach der Anzahl der Leafs aber Letzteres. Ich persönlich würde wohl lieber in die zweite Richtung transformieren, weil dabei weniger Operationen anfallen.Es wäre schön, wenn es eine Option gäbe, je nach Optimierungspräferenz unterschiedlich zu transformieren – also ob die Tiefe oder die Anzahl der Leafs priorisiert werden soll.