CyrefJS
CCyrefJS
EN
بازگشت به مستندات
تابع/از نسخه 1.38.0

pipe

تابعی ایجاد می‌کند که یک مقدار را به‌ترتیب از چند تابع، از چپ به راست، عبور می‌دهد.

pipe(functions):(value: T) => T

پارامترها

functionsArray<(value: T) => T>اختیاری

توابعی که به‌ترتیب از چپ به راست اجرا می‌شوند. هر تابع نتیجه تابع قبلی را دریافت می‌کند.

مقدار بازگشتی

(value: T) => T

تابعی را برمی‌گرداند که مقدار ورودی را به‌ترتیب از تمام توابع داده‌شده عبور می‌دهد.

مثال‌ها

01

استفاده پایه

توابع از چپ به راست اجرا می‌شوند.

TypeScript
const addTen = (value: number) => value + 10;
const double = (value: number) => value * 2;

const transform = pipe(addTen, double);

console.log(transform(5));
// 30
02

ترتیب اجرا

نتیجه هر تابع به‌عنوان ورودی تابع بعدی استفاده می‌شود.

TypeScript
const addTen = (value: number) => value + 10;
const multiplyByTwo = (value: number) => value * 2;
const subtractFive = (value: number) => value - 5;

const transform = pipe(
  addTen,
  multiplyByTwo,
  subtractFive,
);

console.log(transform(5));
// 25

// 5 -> 15 -> 30 -> 25
03

تغییر رشته

می‌توان از pipe برای زنجیره کردن چند تغییر روی رشته استفاده کرد.

TypeScript
const trim = (value: string) => value.trim();
const toLowerCase = (value: string) => value.toLowerCase();
const addPrefix = (value: string) => `user:${value}`;

const normalize = pipe(
  trim,
  toLowerCase,
  addPrefix,
);

console.log(normalize("  AMIR  "));
// user:amir
04

چند تابع

می‌توان هر تعداد تابع سازگار را به pipe ارسال کرد.

TypeScript
const increment = (value: number) => value + 1;
const double = (value: number) => value * 2;
const square = (value: number) => value * value;

const transform = pipe(
  increment,
  double,
  square,
);

console.log(transform(2));
// 36
05

بدون تابع

اگر هیچ تابعی داده نشود، تابع برگشتی همان مقدار ورودی را بدون تغییر برمی‌گرداند.

TypeScript
const identity = pipe<number>();

console.log(identity(42));
// 42
06

یک تابع

می‌توان تنها یک تابع را نیز ارسال کرد تا مستقیماً روی ورودی اجرا شود.

TypeScript
const double = (value: number) => value * 2;

const transform = pipe(double);

console.log(transform(5));
// 10
ساخته شده با@cyref/js·مستندات رسمی