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

compose

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

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

پارامترها

functionsArray<(value: T) => T>الزامی

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

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

(value: T) => T

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

مثال‌ها

01

استفاده پایه

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

TypeScript
import { compose } from "@cyref/js";

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

const transform = compose(double, addTen);

const result = transform(5);

console.log(result);
// 30
02

چند تابع

چند تابع را می‌توان در یک زنجیره تبدیل واحد ترکیب کرد.

TypeScript
import { compose } from "@cyref/js";

const double = (value: number) => value * 2;
const addFive = (value: number) => value + 5;
const square = (value: number) => value * value;

const transform = compose(double, addFive, square);

const result = transform(3);

console.log(result);
// 23
03

ترتیب اجرا

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

TypeScript
import { compose } from "@cyref/js";

const addTwo = (value: number) => value + 2;
const multiplyByThree = (value: number) => value * 3;

const transform = compose(addTwo, multiplyByThree);

const result = transform(4);

// multiplyByThree(4) -> 12
// addTwo(12) -> 14

console.log(result);
// 14
04

تبدیل رشته‌ها

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

TypeScript
import { compose } from "@cyref/js";

const trim = (value: string) => value.trim();
const toUpperCase = (value: string) => value.toUpperCase();
const addPrefix = (value: string) => `Result: ${value}`;

const transform = compose(
  addPrefix,
  toUpperCase,
  trim,
);

const result = transform("  hello world  ");

console.log(result);
// "Result: HELLO WORLD"
05

یک تابع

تابع compose می‌تواند فقط با یک تابع نیز استفاده شود.

TypeScript
import { compose } from "@cyref/js";

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

const transform = compose(double);

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