Plugin do ESLint que transforma expressões booleanas negadas com a lei de De Morgan
(github.com/azat-io)Lançamento do plugin De Morgan para ESLint.
É um plugin que transforma expressões lógicas em código JavaScript para formas mais simples e fáceis de entender.
Disso:
!(a && !b && c <= d)
Para isto:
!a || b || c > d
2 comentários
Acho que o ideal é escrever expressões condicionais de um jeito fácil de ler e entender.
Legal! Como vocês estão comparando o que é melhor entre dois ASTs?
Por exemplo, ao comparar pela profundidade do AST, entre
(!a || !b || !c)e!(a && b && c), que são equivalentes entre si, o primeiro leva vantagem, mas pelo número de folhas o segundo é mais vantajoso. Eu provavelmente gostaria de transformar para a segunda forma, em que há menos operações.Acho que seria interessante ter uma opção para converter de forma diferente dependendo se a preferência de otimização é profundidade ou número de folhas.