TypeScript Generic Function Example


TypeScript के powerful features में से एक है "Generics". Generics हमें एक flexible तरीके से functions, classes, और interfaces लिखने कि facility देते हैं।

Generic functions का use करके हम ऐसे functions लिख सकते हैं जो multiple types के साथ काम कर सकें, बिना code को बार-बार लिखे ।

इस article में हम TypeScript Generic Functions का समझने वाले हैं, कि कैसे आपके code को ज़्यादा reusable और maintainable बना सकती हैं।

What are Generics ?

Generics TypeScript का एक concept है जिसमे आप एक function को लिखते वक्त type specify नहीं करते, बल्कि function को call करते वक्त type define किया जाता है।

इससे function different-different types के साथ काम कर सकता है, बिना code duplicate किये।

इसका advantange यह है कि आप एक ही code लिखते हैं, और multiple types के लिए use कर सकते हैं , Generics dynamic और type-safe code लिखने का एक तरीका है।

TypeScript Generics Example

function identity<T>(value: T): T { return value; }

यहां T एक generic type है, जो function को call करते वक्त set होता है , इस function का काम है जो भी value pass कि जाये, उसको वापस return करना।

चाहे वो string, number या boolean हो, function हर type के लिए काम करेगा।

Function Call with Different Types
console.log(identity<string>("Hello World")); // Output: Hello World
console.log(identity<number>(100)); // Output: 100

यहां अगर ध्यान दोगे तो हमने identity() function call करते time ये बताया है कि किस type की value pass कर रहे हैं।

Generic Functions Syntax

Generic functions का basic syntax simple है। आप function name के बाद angle brackets <T> का use करते हैं, जिसमे T एक placeholder होता है।

जब function को call किया जाता है, तब आप type को specify करते हैं।

Example

function logItems<T>(items: T[]): void { items.forEach(item => console.log(item)); }

इस function में हम एक array को log कर रहे हैं , T[] का मतलब है कि यह function किसी भी type के array को handle कर सकता है।

Call with String Array

logItems<string>(["apple", "banana", "mango"]); // Output: // apple // banana // mango

Call with Number Array

logItems<number>([1, 2, 3, 4]); // Output: // 1 // 2 // 3 // 4

Multiple Type Parameters

Generics में आप एक से ज़्यादा type parameters भी define कर सकते हो। यह उस situations में helpful होता है जब आपको different types के input handle करने होते हैं।

Example with Two Types

function mergeObjects<T, U>(obj1: T, obj2: U): T & U { return { ...obj1, ...obj2 }; }

यह function दो अलग-अलग objects को merge करके एक single object बनाता है।

Usage

const person = mergeObjects({ name: "John" }, { age: 30 }); console.log(person); // Output: { name: 'John', age: 30 }

TypeScript Generic Constraints

कभी-कभी आपको generic types पर कुछ constraints लगाने कि जरूरत पड़ती है, ताकि सिर्फ कुछ specific types ही allow हूँ।

इसके लिए आप extends keyword का use कर सकते हो।

Example

function getLength<T extends { length: number }>(item: T): number { return item.length; }

यह function सिर्फ उन objects को allow करेगा जो length property रखते हैं, जैसे कि arrays और strings.

Valid Call with Array

console.log(getLength([1, 2, 3])); // Output: 3
Valid Call with String

console.log(getLength("Hello")); // Output: 5

Using Generics with Interfaces

आप generics को interfaces के साथ भी use कर सकते हैं, जिससे आपका code और ज़्यादा flexible बन जाता है।

Example

interface KeyValuePair<T, U> { key: T; value: U; } const kv: KeyValuePair<string, number> = { key: "age", value: 30 }; console.log(kv); // Output: { key: 'age', value: 30 }

यह generic interface KeyValuePair() दो types (T और U) के साथ काम करता है, एक key और एक value के लिए।

Advantages of Generics

  • Reusability : आपको बार-बार same function लिखने कि जरूरत नहीं पड़ती, बस एक generic function लिखना होता है।

  • Type Safety : आपके code में किस type के data का काम हो रहा है, यह TypeScript check करता है और errors को avoid करता है।

  • Flexibility : Generics आपके code को flexible और adaptable बनाते हैं, जिससे आप multiple types के साथ काम कर सकते हैं।

  • Code Reduction : Generics का use करके आप code को reduce कर सकते हो, जिससे code ज़्यादा readable और maintainable हो जाता है।

Conclusion

Generics TypeScript का एक powerful feature है जो आपके code को ज़्यादा flexible, reusable, और type-safe बनाता है।

Functions में generics का use करके आप multiple types को handle कर सकते हो बिना code duplication के।

इस topic में हमने देखा कि generics का basic syntax क्या है, कैसे function overloading और constraints के साथ काम किया जाता है, और उनका real-world example.

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook