TypeScript Academy · पाठ

इंटरफ़ेस बनाम प्रकार: किसका उपयोग कब करें

अलग-अलग परिस्थितियों के लिए interface और type में से चुनें

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

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

स्वागत है

`interface` और `type` दोनों ऑब्जेक्ट संरचनाओं का वर्णन करते हैं। वे समान हैं, लेकिन उनमें कुछ महत्वपूर्ण अंतर हैं। यह पाठ आपको सही विकल्प चुनने में सहायता करता है।

समानताएँ

दोनों ऑब्जेक्ट संरचनाओं का वर्णन कर सकते हैं, वैकल्पिक और readonly गुण शामिल कर सकते हैं, फ़ंक्शन पैरामीटर के प्रकार के रूप में उपयोग किए जा सकते हैं और जेनरिक का समर्थन करते हैं।
interface A { x: number; }
type B = { x: number; };
// Both describe the same shape

मुख्य अंतर: घोषणा विलय

इंटरफ़ेस घोषणा विलय का समर्थन करते हैं। टाइप एलियस ऐसा नहीं करते—टाइप एलियस को दोबारा घोषित करना एक त्रुटि है।
interface Config { host: string; }
interface Config { port: number; } // OK — merged

type Settings = { host: string; };
// type Settings = { port: number; }; // Error

मुख्य अंतर: यूनियन और इंटरसेक्शन

टाइप एलियस यूनियन, इंटरसेक्शन, प्रिमिटिव और टपल का वर्णन कर सकते हैं। इंटरफ़ेस केवल ऑब्जेक्ट संरचनाओं का वर्णन कर सकते हैं।
type ID = string | number;        // union — only with type
type Nullable<T> = T | null;       // union — only with type
type Point = [number, number];     // tuple — only with type

मुख्य अंतर: परिकलित गुण

टाइप एलियस अपनी संरचना की गणना करने के लिए मैप किए गए और सशर्त प्रकारों का उपयोग कर सकते हैं। इंटरफ़ेस इनका सीधे उपयोग नहीं कर सकते।
type ReadonlyUser = Readonly<{ name: string; age: number }>; // mapped type
type Keys = keyof User; // only with type

वर्ग अनुबंधों के लिए इंटरफ़ेस का उपयोग

इंटरफ़ेस `implements` के माध्यम से वर्गों के साथ स्वाभाविक रूप से एकीकृत होते हैं। इससे यह सुनिश्चित होता है कि कोई वर्ग निश्चित गुण और विधियाँ प्रदान करता है।
interface Repository<T> {
  findById(id: number): T | null;
  save(item: T): void;
}
class UserRepo implements Repository<User> { /* ... */ }

प्रदर्शन: इंटरफ़ेस बनाम टाइप

आंतरिक रूप से, TypeScript जटिल टाइप एलियस अभिव्यक्तियों की तुलना में इंटरफ़ेस संरचना की जाँच को अधिक कुशलता से कैश करता है। बड़े ऑब्जेक्ट प्रकारों के लिए इंटरफ़ेस को प्राथमिकता दें।

त्रुटि संदेश अलग होते हैं

जब प्रकारों में असंगति होती है, तो त्रुटियों में अक्सर इंटरफ़ेस का नाम दिखाई देता है, जबकि टाइप एलियस की विस्तृत संरचना दिखाई देती है। इंटरफ़ेस से जुड़ी त्रुटियाँ आमतौर पर अधिक आसानी से पढ़ी जा सकती हैं।

TypeScript की आधिकारिक अनुशंसा

TypeScript टीम `type` की आवश्यकता वाली सुविधाएँ मिलने तक `interface` का उपयोग करने की अनुशंसा करती है। यह उनकी दस्तावेज़ीकृत सर्वोत्तम पद्धति है।

टीम की एकरूपता सबसे महत्वपूर्ण है

कई टीमें एक विकल्प चुनकर हर जगह उसी का उपयोग करती हैं, ताकि एकरूपता बनी रहे। एक ही प्रोजेक्ट में दोनों को बिना स्पष्ट नियम के मिलाना भ्रमित कर सकता है। शैली मार्गदर्शिका इसमें सहायता करती है।

सारांश निर्णय तालिका

इनके लिए interface का उपयोग करें: ऑब्जेक्ट, वर्ग और लाइब्रेरी संवर्धन। इनके लिए type का उपयोग करें: यूनियन, इंटरसेक्शन, टपल, प्रिमिटिव, मैप किए गए प्रकार और सशर्त प्रकार।
// interface
interface User { name: string; age: number; }

// type (union)
type ID = string | number;

// type (tuple)
type Coord = [number, number];

त्वरित जाँच

`string | number` जैसे यूनियन प्रकार को बनाने के लिए कौन-सी संरचना आवश्यक है?

पुनरावलोकन

ऑब्जेक्ट संरचनाओं, वर्ग अनुबंधों और लाइब्रेरी संवर्धन के लिए interface का उपयोग करें। यूनियन, इंटरसेक्शन, टपल और परिकलित प्रकारों के लिए type का उपयोग करें। संदेह होने पर ऑब्जेक्ट संरचनाओं के लिए TypeScript टीम की अनुशंसा interface है।
शुरुआत निःशुल्क

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

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

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

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

क्या “इंटरफ़ेस बनाम प्रकार: किसका उपयोग कब करें” पाठ निःशुल्क है?

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

“इंटरफ़ेस बनाम प्रकार: किसका उपयोग कब करें” में मैं क्या सीखूँगा?

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

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

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

“इंटरफ़ेस बनाम प्रकार: किसका उपयोग कब करें” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. इंटरफ़ेस से ऑब्जेक्ट का आकार निर्धारित करना
  2. जटिल प्रकारों के लिए प्रकार उपनाम
  3. इंटरफ़ेस का विस्तार और विलय
  4. इंटरफ़ेस बनाम प्रकार: किसका उपयोग कब करें
← TypeScript Academy पर वापस जाएँ