पाठ 24 / 26

डेकोरेटर्स एक नज़र में

ऐसे फ़ंक्शन जो क्लासों में मेटाडेटा या व्यवहार जोड़ते हैं — Angular की रीढ़।

डेकोरेटर क्या है?

डेकोरेटर एक विशेष फ़ंक्शन है, @ से शुरू होने वाला, जो किसी क्लास या सदस्य को व्यवहार या मेटाडेटा जोड़ने के लिए लपेटता है, बिना उसके स्रोत को बदले। Angular इन्हें बहुत उपयोग करता है — @Component, @Injectable, @Input

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

डेकोरेटर बस एक फ़ंक्शन है जो क्लास को प्राप्त करता है और उसे देख या बदल सकता है।

function Logged(constructor: Function) {
  console.log(`Class defined: ${constructor.name}`);
}

@Logged
class Greeter {
  greet() {
    return "Hello!";
  }
}
// Output: Class defined: Greeter

tsconfig में सक्षम करें

लीगेसी डेकोरेटर्स के लिए tsconfig.json में "experimentalDecorators": true चाहिए — Angular CLI प्रोजेक्ट यह अपने-आप सेट कर देते हैं।