تابع/از نسخه
1.38.0compose
چند تابع را در یک تابع واحد ترکیب میکند و آنها را از راست به چپ اجرا میکند.
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);
// 3002
چند تابع
چند تابع را میتوان در یک زنجیره تبدیل واحد ترکیب کرد.
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);
// 2303
ترتیب اجرا
توابع از راست به چپ اجرا میشوند. ابتدا تابع سمت راست مقدار اصلی را دریافت میکند.
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);
// 1404
تبدیل رشتهها
میتوان از 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·مستندات رسمی