javascript - Είναι δυνατόν να απενεργοποιηθεί κανόνας του ESLint/Prettier που προσθέτει παρενθέσεις;


Αν γράψω:

const a = 1;
const b = 1;
const c = 1;
const d = 1;

const t = a * b * (c + d) / 100;

τότε κάποιος κανόνας θέλει να αλλάξει σε:

const t = (a * b * (c + d)) / 100;
//        ^               ^ unwanted parentheses

Δεν θέλω τις επιπλέον παρενθέσεις, αλλά δεν μπορώ να καταλάβω αν τις προσθέτει το ESLint ή το Prettier. Το .eslintrc μου που προστέθηκε παρακάτω:

{
  "root": true,
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "project": ["./tsconfig.json"]
  },
  "plugins": ["@typescript-eslint", "prettier"],
  "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"],
  "rules": {
    "no-console": 1,
    "prettier/prettier": 2,
    "no-case-declarations": 0,
    "no-extra-parens": 2,
    "@typescript-eslint/no-extra-parens": 2
  },
  "env": {
    "browser": true,
    "node": true
  }
}

Ενημέρωση

Να τι συμβαίνει όταν αιωρούμαι χωρίς τις παρενθέσεις.

Απάντηση #1

Είναι το Prettier που τα προσθέτει και δεν μπορεί να απενεργοποιηθεί. Δείτε https://github.com/prettier/prettier/issues/12554

Το Prettier συνήθιζε να τυπώνει όσο το δυνατόν λιγότερες παρενθέσεις, μετά άλλαξε και άρχισε να τυπώνει μερικές επιπλέον για ευανάγνωστοτητα. Δείτε το πολύ μεγάλο #187 για την πλήρη ιστορία.

Στο νήμα dprint προτείνεται ως εναλλακτική του Prettier. Η υποβάθμιση του Prettier στην έκδοση του 2017 θα μπορούσε επίσης να είναι μια επιλογή. Ή ίσως υπάρχει ένα ενεργό fork του Prettier που δεν προσθέτει τις παρένθεσεις.