typescript - Kuinka välttää VsCode Prettierin katkaisemasta ketjufunktioita nuolifunktioiden kanssa?


Työskentelen VSCode:n ja Prettierin kanssa, ja kun meillä on ketjutettuja funktiokutsuja, joissa on nuolifunktioita sisällä, kuten lodash-ketjussa:

let total = _(credits).filter(c => c.active).sumBy(c => c.fee);

Prettier jakautuu seuraaviin osiin:

discount = _(credits)
    .filter(c => c.active)
    .sumBy(c => c.fee);

Kun käytämme strings nuolifunktioiden sijaan, se ei katkea usealle riville, esimerkiksi:

let total = _(credits).filter('c => c.active').sumBy('c => c.fee');

Työskentelen seuraavan .prettierrc ja "prettier": "^2.0.5" kanssa:

{
  "singleQuote": true,
  "trailingComma": "all",
  "printWidth": 280,
  "tabWidth": 4,
  "arrowParens": "avoid",
}

Kuinka voin välttää rivin katkeamisen Prettierin kanssa, kun funktion sisällä on nuolifunktio?

Vastaus #1

Ei ole vaihtoehtoa ohittaa metodiketjun katkaisukäyttäytymistä. Versiossa 2.0 Prettier käyttää uutta heuristiikkaa päättääkseen, milloin metodiketjut katkaistaan. Voit nähdä heuristiikan osoitteessa https://github.com/prettier/prettier/pull/6685/files#diff-207f1974ddc06ae7b574152f9afc878dR893.

Prettier katkaisee metodiketjut, jos argumentit eivät ole yksinkertaisia. Merkkijonoliteral katsotaan "yksinkertaiseksi", mutta nuolifunktioilmaisu katsotaan "ei-yksinkertaiseksi". Siksi näet erilaista käyttäytymistä, kun välität merkkijonoja vs. nuolifunktioita parametreina.