Plugin de ESLint para transformar expresiones booleanas negadas mediante las leyes de De Morgan
(github.com/azat-io)Lanzamiento de De Morgan para ESLint.
Es un plugin que transforma expresiones lógicas en código JavaScript para hacerlas más simples y fáciles de entender.
De esto:
!(a && !b && c <= d)
A esto
!a || b || c > d
2 comentarios
Creo que las expresiones condicionales deberían escribirse de forma que sean fáciles de leer y entender.
¡Se ve bien! ¿Cómo están comparando cuál AST es mejor entre dos opciones?
Por ejemplo, al comparar por profundidad del AST, entre
(!a || !b || !c)y!(a && b && c), que son equivalentes, la primera sale favorecida, pero si se compara por cantidad de hojas, la segunda resulta más conveniente. Yo probablemente querría transformarlo hacia la segunda forma, donde hay menos operaciones.Creo que estaría bueno tener una opción para que la transformación cambie según la preferencia de optimización: si se prioriza la profundidad o la cantidad de hojas.