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