TypeScript Function Types का परिचय

TypeScript में हर चीज़ के लिए types की आवश्यकता होती है। इसमें आपके functions भी शामिल हैं। आपको inputs और outputs के लिए types परिभाषित करने होंगे।

Function Syntax

आप input types और output type को इस तरह परिभाषित करते हैं:

function add(x: number, y: number): number { return x + y; }

TypeScript type inference का भी उपयोग करता है। आपको हमेशा output type लिखने की आवश्यकता नहीं होती है। Compiler इसे आपके लिए खुद ढूँढ लेता है।

यदि आपका function अलग-अलग types return करता है, तो TypeScript इसे संभाल लेता है। उदाहरण के लिए, यदि कोई function एक number या string return करता है, तो compiler दोनों को पहचान लेता है।

Special Return Types

  • void: इसका उपयोग तब करें जब कोई function कुछ भी return न करे।
  • never: इसका उपयोग तब करें जब कोई function error throw करता है या प्रोग्राम को रोक देता है।

Parameters

आप question mark का उपयोग करके parameters को optional बना सकते हैं।

function makeProfile(name: string, age: number, url?: string) { // code }

आप default values का भी उपयोग कर सकते हैं। इससे बिना किसी विशेष symbol के parameter optional हो जाता है।

function makeProfile(name: string, age: number, url: string = "www.example.com") { return name + " visits " + url; }

Callback Functions

Functions values होते हैं। आप उन्हें arguments के रूप में pass कर सकते हैं। Callback type को परिभाषित करने के लिए, इस syntax का उपयोग करें:

function makePage(func: (n: string, a: number, u?: string) => string, param1: string, param2: number) { func(param1, param2); }

Callback में parameters के नाम मायने नहीं रखते। केवल types मायने रखते हैं।

Arrays of Functions

यदि आपको functions की एक सूची चाहिए, तो उन्हें उस function type के array के रूप में परिभाषित करें।

function applyMath(funcs: ((a: number, b: number) => number)[], x: number, y: number) { // code }

Rest Parameters

किसी भी संख्या में arguments स्वीकार करने के लिए spread operator का उपयोग करें। यह सभी inputs को एक array में स्टोर करता है।

function sum(...numbers: number[]) { // code }

sum(1, 2, 3);

Source: https://dev.to/jsha/introduction-to-typescript-function-types-hin