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 واپس کرتا ہے، تو TypeScript اسے سنبھال لیتا ہے۔ مثال کے طور پر، اگر کوئی function number یا string واپس کرتا ہے، تو compiler دونوں کو پہچان لیتا ہے۔

خصوصی Return Types

  • void: اسے تب استعمال کریں جب کوئی function کچھ بھی واپس نہ کرے۔
  • never: اسے تب استعمال کریں جب کوئی function error دے یا پروگرام کو روک دے۔

Parameters

آپ سوالیہ نشان (?) کا استعمال کرتے ہوئے parameters کو اختیاری (optional) بنا سکتے ہیں۔

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

آپ default values بھی استعمال کر سکتے ہیں۔ اس سے کوئی parameter بغیر کسی خاص علامت کے اختیاری ہو جاتا ہے۔

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

Callback Functions

Functions دراصل values ہیں۔ آپ انہیں arguments کے طور پر پاس کر سکتے ہیں۔ Callback type کو متعین کرنے کے لیے، اس syntax کا استعمال کریں:

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

Callback میں parameters کے ناموں سے فرق نہیں پڑتا۔ صرف types اہم ہوتی ہیں۔

Functions کے Arrays

اگر آپ کو 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);

ماخذ: https://dev.to/jsha/introduction-to-typescript-function-types-hin