برنامه نویسی کاربردی با TypeScript آسان شده است

برنامه نویسی تابعی یک الگوی برنامه نویسی است که بر استفاده از توابع خالص، تغییر ناپذیری و توابع درجه بالاتر تأکید دارد. TypeScript یک ابر مجموعه جاوا اسکریپت با تایپ قوی است که از برنامه نویسی شی گرا پشتیبانی می کند، اما ویژگی هایی را نیز برای برنامه نویسی عملکردی ارائه می دهد.
یکی از مفاهیم کلیدی در برنامه نویسی تابعی استفاده از توابع به عنوان شهروندان درجه یک است. این بدان معنی است که توابع می توانند به عنوان آرگومان به توابع دیگر ارسال شوند، به عنوان مقادیر از توابع برگردانده شوند و به متغیرها اختصاص داده شوند. TypeScript از این مفهوم پشتیبانی می کند، که نوشتن کد عملکردی را آسان می کند.
بیایید به چند نمونه از برنامه نویسی تابعی در TypeScript نگاهی بیندازیم.
توابع خالص
در برنامه نویسی تابعی، توابع خالص، توابعی هستند که عوارض جانبی ندارند و همیشه خروجی یکسانی را برای ورودی یکسان برمی گردانند. TypeScript از توابع خالص پشتیبانی می کند و نوشتن آنها آسان است. در اینجا یک مثال است:
function add(x: number, y: number): number {
return x + y;
}
این تابع دو عدد را به عنوان ورودی می گیرد و مجموع آنها را برمی گرداند. هیچ عوارض جانبی ندارد و همیشه همان خروجی را برای ورودی یکسان برمی گرداند.
توابع مرتبه بالاتر
تابع مرتبه بالاتر تابعی است که یک یا چند تابع را به عنوان آرگومان می گیرد یا تابعی را به عنوان نتیجه برمی گرداند. TypeScript از توابع مرتبه بالاتر پشتیبانی می کند که برای ایجاد توابع پیچیده تر مفید هستند. در اینجا یک مثال است:
function multiplyBy(factor: number) {
return function(x: number) {
return x * factor;
}
}
const double = multiplyBy(2);
console.log(double(5)); // Output: 10
در این مثال، multiplyBy
تابع مرتبه بالاتری است که a را می گیرد factor
به عنوان ورودی و تابع جدیدی را برمی گرداند که آرگومان آن را در عدد ضرب می کند factor
. سپس یک تابع جدید ایجاد می کنیم double
با تماس multiplyBy
با استدلال از 2. سپس می توانیم تماس بگیریم double
با استدلال از 5، که برمی گردد 10.
عملکرد لوله
تابع لوله یک تابع مرتبه بالاتر است که یک یا چند تابع را به عنوان آرگومان می گیرد و یک تابع جدید برمی گرداند که هر تابع را به نوبه خود در ورودی خود اعمال می کند. TypeScript از تابع لوله پشتیبانی می کند، و این یک راه مفید برای نوشتن توابع است. در اینجا یک مثال است:
function pipe<T>(...fns: Array<(arg: T) => T>) {
return function(x: T) {
return fns.reduce((v, f) => f(v), x);
}
}
function addOne(x: number): number {
return x + 1;
}
function double(x: number): number {
return x * 2;
}
const addOneThenDouble = pipe(addOne, double);
console.log(addOneThenDouble(5)); // Output: 12
در این مثال، a را تعریف می کنیم pipe
تابعی که یک یا چند تابع را به عنوان آرگومان می گیرد و یک تابع جدید برمی گرداند که هر تابع را به نوبه خود در ورودی خود اعمال می کند. سپس دو تابع ساده را تعریف می کنیم، addOne
و double
، و استفاده کنید pipe
برای ایجاد یک تابع جدید addOneThenDouble
که ابتدا یکی را به ورودی خود اضافه می کند، سپس آن را دو برابر می کند. سپس می توانیم تماس بگیریم addOneThenDouble
با استدلال از 5، که برمی گردد 12.
نتیجه
TypeScript تعدادی ویژگی را فراهم می کند که نوشتن کد عملکردی را آسان می کند. توابع خالص، توابع مرتبه بالاتر و تابع لوله همگی مفاهیم مفیدی برای نوشتن کد تابعی در TypeScript هستند. با پذیرش این مفاهیم، میتوانید کدهای ماژولار، قابل استفاده مجدد و آزمایشپذیر بیشتری بنویسید.