पाठ 18 / 26

जेनेरिक फ़ंक्शन

एक ऐसा फ़ंक्शन लिखें जो कई टाइप्स के साथ सुरक्षित रूप से काम करे।

एक जेनेरिक आइडेंटिटी फ़ंक्शन

<T> एक टाइप प्लेसहोल्डर है, जो असल में पास किए गए टाइप से भर जाता है — any के विपरीत, इनपुट और आउटपुट के बीच का संबंध टाइप-सुरक्षित रहता है।

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

const a = identity<number>(42);      // a: number
const b = identity("hello");         // b: string, T inferred

एक लेबल वाला डिब्बा

T को एक लेबल वाले शिपिंग डिब्बे की तरह सोचें — पैक होने तक पता नहीं क्या अंदर है, पर जो अंदर जाता है वही बिना बदले बाहर आता है।

एक जेनेरिक ऐरे हेल्पर

यही जेनेरिक फ़ंक्शन संख्याओं, स्ट्रिंग या ऑब्जेक्ट की ऐरे के साथ काम करता है — TS हर कॉल को टाइप-चेक रखता है।

function firstElement<T>(arr: T[]): T | undefined {
  return arr[0];
}

firstElement([1, 2, 3]);          // number | undefined
firstElement(["a", "b"]);         // string | undefined