typescript - چگونه از شکستن توابع زنجیرهای با توابع پیکانی توسط Prettier در VsCode جلوگیری کنیم؟


من با VSCode و Prettier کار میکنم و وقتی که ما توابع زنجیرهای با توابع فلش داخلی مانند یک زنجیره lodash داریم:

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

Prettier تقسیم میکند به:

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

وقتی ما از strings به جای توابع فلشی استفاده میکنیم، به چند خط تقسیم نمیشود، برای مثال:

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

من با .prettierrc و "prettier": "^2.0.5" زیر کار میکنم:

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

چگونه میتوانم از شکستن خط با prettier جلوگیری کنم وقتی که یک تابع پیکان داخل توابع وجود دارد؟

پاسخ شماره ۱

گزینهای برای نادیده گرفتن رفتار شکستن زنجیره متد وجود ندارد. با نسخه ۲.۰، Prettier از یک روش نوین برای تعیین زمان شکستن زنجیرههای متد استفاده میکند. شما میتوانید این روش را در https://github.com/prettier/prettier/pull/6685/files#diff-207f1974ddc06ae7b574152f9afc878dR893 مشاهده کنید.

Prettier زنجیرههای متد را اگر آرگومانها پیچیده باشند، میشکند. یک رشتهٔ متنی به عنوان "ساده" در نظر گرفته میشود، اما یک عبارت تابع پیکان به عنوان "پیچیده" در نظر گرفته میشود. به همین دلیل است که هنگام عبور دادن رشتهها در مقابل توابع پیکان به عنوان پارامترها، رفتار متفاوتی مشاهده میکنید.