पाठ 19 / 28

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

Type parameters वाले generic functions लिखें ताकि एक function numbers, strings और objects के लिए type-safe रहे।

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

<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