# डेकोरेटर्स एक नज़र में — टाइपस्क्रिप्ट

Source: https://www.geekswithgeeks.com/hi/typescript/ts-decorators

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

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

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

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

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

```typescript
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 प्रोजेक्ट यह अपने-आप सेट कर देते हैं।
