TypeScript Academy · पाठ

पैरामीटर डेकोरेटर और मेटाडेटा

reflect-metadata के साथ पैरामीटर डेकोरेटर का उपयोग करें

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

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

स्वागत है

इस पाठ में TypeScript में पैरामीटर डेकोरेटर और मेटाडेटा शामिल हैं।

परिचय

डेकोरेटर, JavaScript का स्टेज-3 प्रस्ताव और TypeScript की एक प्रयोगात्मक सुविधा हैं, जिनका उपयोग मेटाडेटा जोड़ने तथा क्लास और उनके सदस्यों को संशोधित करने के लिए किया जाता है।

मुख्य अवधारणा

डेकोरेटर एक फ़ंक्शन है, जिसे @ सिंटैक्स का उपयोग करके किसी क्लास, विधि, प्रॉपर्टी या पैरामीटर पर लागू किया जाता है।
@sealed
class BugReport {
  type = 'report';
  title: string;
  constructor(t: string) { this.title = t; }
}

क्लास डेकोरेटर

क्लास डेकोरेटर को कन्स्ट्रक्टर फ़ंक्शन प्राप्त होता है और वे इसका संशोधित संस्करण लौटा सकते हैं।
function sealed(constructor: Function) {
  Object.seal(constructor);
  Object.seal(constructor.prototype);
}

विधि डेकोरेटर

विधि डेकोरेटर को लक्ष्य, प्रॉपर्टी का नाम और प्रॉपर्टी विवरणक प्राप्त होता है।
function log(target: any, key: string, desc: PropertyDescriptor) {
  const orig = desc.value;
  desc.value = function(...args: any[]) {
    console.log('Calling', key);
    return orig.apply(this, args);
  };
}

प्रॉपर्टी डेकोरेटर

प्रॉपर्टी डेकोरेटर को लक्ष्य और प्रॉपर्टी कुंजी प्राप्त होती है। वे सीधे पढ़ने और लिखने की कार्रवाइयों को इंटरसेप्ट नहीं कर सकते।
function readonly(target: any, key: string) {
  Object.defineProperty(target, key, { writable: false });
}

पैरामीटर डेकोरेटर

पैरामीटर डेकोरेटर को लक्ष्य, विधि का नाम और पैरामीटर इंडेक्स प्राप्त होता है।
function required(target: any, key: string, index: number) {
  const meta = Reflect.getMetadata('required', target, key) || [];
  meta.push(index);
  Reflect.defineMetadata('required', meta, target, key);
}

डेकोरेटर फ़ैक्टरी

डेकोरेटर फ़ैक्टरी वह फ़ंक्शन है जो एक डेकोरेटर लौटाती है। यह कॉन्फ़िगरेशन पैरामीटर लेती है।
function role(name: string) {
  return function(target: any, key: string) {
    Reflect.defineMetadata('role', name, target, key);
  };
}

class UserController {
  @role('admin')
  deleteUser() {}
}

NestJS डेकोरेटर

NestJS नियंत्रकों, निर्भरता इंजेक्शन और मार्ग निर्धारण के लिए डेकोरेटर का व्यापक रूप से उपयोग करता है।
@Controller('users')
class UsersController {
  constructor(private usersService: UsersService) {}

  @Get()
  findAll(): User[] {
    return this.usersService.findAll();
  }
}

reflect-metadata

डेकोरेटर अक्सर रनटाइम पर मेटाडेटा संग्रहीत करने और प्राप्त करने के लिए reflect-metadata पॉलीफ़िल के साथ काम करते हैं।
import 'reflect-metadata';
// Enable in tsconfig: experimentalDecorators: true, emitDecoratorMetadata: true

डेकोरेटर का क्रम

एक ही घोषणा पर कई डेकोरेटर नीचे से ऊपर की ओर लागू होते हैं (अंत में लिखा गया डेकोरेटर पहले मूल्यांकित होता है)।
@first
@second
class Example {}
// Applied: second first, then first

त्वरित जाँच

डेकोरेटर का उपयोग करने के लिए TypeScript में कौन-सा कॉन्फ़िगरेशन आवश्यक है?

पुनरावृत्ति

डेकोरेटर @ सिंटैक्स का उपयोग करके क्लास, विधियों, प्रॉपर्टीज़ और पैरामीटर को संशोधित करते हैं। tsconfig में experimentalDecorators सक्षम करके इन्हें सक्रिय किया जाता है और NestJS तथा Angular जैसे ढाँचों में इनका व्यापक उपयोग होता है।
शुरुआत निःशुल्क

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

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

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

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

क्या “पैरामीटर डेकोरेटर और मेटाडेटा” पाठ निःशुल्क है?

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

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

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

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

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

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

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

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

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

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

  1. क्लास डेकोरेटर: व्यवहार को लपेटना
  2. विधि और गुण डेकोरेटर
  3. पैरामीटर डेकोरेटर और मेटाडेटा
  4. फ़्रेमवर्क में डेकोरेटर: NestJS उदाहरण
← TypeScript Academy पर वापस जाएँ