TypeScript Academy · पाठ

जेनेरिक कंपोनेंट और forwardRef

जेनेरिक की सहायता से दोबारा उपयोग किए जा सकने वाले प्रकारयुक्त कंपोनेंट बनाएँ

पाठ 4, कुल 4 में से13 चरण

जेनेरिक कंपोनेंट और forwardRef, CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

स्वागत है

इस पाठ में React के साथ TypeScript में जेनेरिक घटकों और forwardRef का प्रकार-निर्धारण शामिल है।

घटक प्रॉप्स इंटरफ़ेस

React घटकों के लिए एक प्रॉप्स इंटरफ़ेस परिभाषित करें, ताकि घटक API का दस्तावेज़ीकरण हो और उसे लागू कराया जा सके।
interface ButtonProps {
  label: string;
  onClick: () => void;
  disabled?: boolean;
}

function Button({ label, onClick, disabled }: ButtonProps) {
  return <button onClick={onClick} disabled={disabled}>{label}</button>;
}

FC बनाम स्पष्ट रिटर्न प्रकार

React.FC स्वतः चाइल्ड तत्वों और अन्य प्रकारों को जोड़ता है। स्पष्ट रिटर्न प्रकार (JSX.Element | null) अक्सर अधिक स्पष्ट होता है।
const Card: React.FC<{title: string}> = ({ title }) => <div>{title}</div>;

// Or explicit:
function Card2({ title }: { title: string }): JSX.Element {
  return <div>{title}</div>;
}

useState का प्रकार-निर्धारण

useState प्रारंभिक मान से प्रकार का अनुमान लगाता है। प्रारंभिक मान null या अस्पष्ट होने पर प्रकार पैरामीटर दें।
const [count, setCount] = useState(0);           // number
const [name, setName] = useState('');            // string
const [user, setUser] = useState<User | null>(null); // explicit

useReducer का प्रकार-निर्धारण

useReducer विभेदक यूनियन वाले क्रिया प्रकार के साथ सबसे अच्छी तरह काम करता है।
type Action = { type: 'increment' } | { type: 'decrement' } | { type: 'reset'; value: number };
function reducer(state: number, action: Action): number {
  switch (action.type) {
    case 'increment': return state + 1;
    case 'decrement': return state - 1;
    case 'reset': return action.value;
  }
}

DOM के लिए useRef का प्रकार-निर्धारण

DOM तत्वों के लिए useRef में एक प्रकार आर्ग्युमेंट आवश्यक होता है। इसे null से प्रारंभ करें, क्योंकि तत्व अभी मौजूद नहीं है।
const inputRef = useRef<HTMLInputElement>(null);

// Use:
if (inputRef.current) {
  inputRef.current.focus();
}

इवेंट हैंडलर का प्रकार-निर्धारण

React के घटना प्रकारों में React.ChangeEvent, React.MouseEvent और React.FormEvent शामिल हैं।
function handleChange(e: React.ChangeEvent<HTMLInputElement>) {
  console.log(e.target.value);
}
function handleClick(e: React.MouseEvent<HTMLButtonElement>) {
  e.preventDefault();
}

जेनेरिक घटक

जेनेरिक घटक लचीली और प्रकार-सुरक्षित सूचियों तथा चयन नियंत्रणों के लिए एक प्रकार पैरामीटर स्वीकार करते हैं।
function List<T extends { id: number }>({ items }: { items: T[] }) {
  return <ul>{items.map(i => <li key={i.id}>{JSON.stringify(i)}</li>)}</ul>;
}

TypeScript के साथ forwardRef

forwardRef में रेफ़ तत्व के प्रकार और प्रॉप्स, दोनों के लिए प्रकार पैरामीटर आवश्यक होते हैं।
const Input = React.forwardRef<HTMLInputElement, InputProps>(
  ({ label, ...props }, ref) => (
    <label>{label}<input {...props} ref={ref} /></label>
  )
);

कस्टम हुक के रिटर्न प्रकार

ट्यूपल रिटर्न के लिए any[] का अनुमान लगने से बचने हेतु कस्टम हुक के रिटर्न मानों का प्रकार स्पष्ट रूप से निर्धारित करें।
function useToggle(init: boolean): [boolean, () => void] {
  const [state, setState] = useState(init);
  return [state, () => setState(s => !s)];
}

TypeScript के साथ कॉन्टेक्स्ट

React कॉन्टेक्स्ट का प्रकार ऐसे यूनियन के साथ निर्धारित करें जिसमें undefined शामिल हो, ताकि उपयोग करने वाले कॉन्टेक्स्ट की जाँच करने के लिए बाध्य हों।
const AuthContext = React.createContext<User | undefined>(undefined);
function useAuth(): User {
  const ctx = useContext(AuthContext);
  if (!ctx) throw new Error('useAuth must be used within AuthProvider');
  return ctx;
}

त्वरित जाँच

HTML इनपुट तत्व के रेफ़ के लिए सही प्रकार क्या है?

पुनरावलोकन

इंटरफ़ेस के साथ React प्रॉप्स, प्रकार पैरामीटर के साथ useState, React घटना प्रकारों के साथ घटनाएँ, DOM तत्व जेनेरिक के साथ रेफ़ और दोहरे प्रकार पैरामीटर के साथ forwardRef का प्रकार निर्धारित करें। जेनेरिक घटक प्रकार-सुरक्षित पुनः उपयोग योग्य UI सक्षम करते हैं।
शुरुआत निःशुल्क

एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
101
पाठ
352

अक्सर पूछे जाने वाले प्रश्न

क्या “जेनेरिक कंपोनेंट और forwardRef” पाठ निःशुल्क है?

हाँ—“जेनेरिक कंपोनेंट और forwardRef” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“जेनेरिक कंपोनेंट और forwardRef” में मैं क्या सीखूँगा?

जेनेरिक की सहायता से दोबारा उपयोग किए जा सकने वाले प्रकारयुक्त कंपोनेंट बनाएँ आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“जेनेरिक कंपोनेंट और forwardRef” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. React कंपोनेंट प्रॉप्स के प्रकार निर्धारित करना
  2. useState और useReducer के प्रकार निर्धारित करना
  3. useRef और इवेंट हैंडलर के प्रकार निर्धारित करना
  4. जेनेरिक कंपोनेंट और forwardRef
← TypeScript Academy पर वापस जाएँ