Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • TypeScript Documentation28টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Introduction
  • Installation
  • Basic Types
  • Variables & Inference
  • Functions
  • Objects
  • Type Alias
  • Interface
  • Union & Intersection
  • Type Narrowing
  • Type Guards
  • Enums
  • Generics
  • Classes
  • Utility Types
  • Type Assertion
  • Async TypeScript
  • Conditional Types
  • Mapped Types
  • Template Literal Types
  • tsconfig Options
  • Modules & Types
  • Decorators
  • React + TypeScript
  • Node.js + TypeScript
  • JS → TypeScript
  • Common Errors
  • Mini Project
  1. Docs
  2. TypeScript
  3. Decorators (ডেকোরেটর)
TypeScriptAdvanced

Decorators (ডেকোরেটর)

Class/method/property decorator, decorator factory ও tsconfig experimentalDecorators — বাংলায়।

10টি অংশবাংলা ভাষায়

Decorator হলো class ও তার সদস্যের চারপাশের wrap-মত — ক্লাস, মেথড, প্রপার্টি, parameter-এ আচরণ যোগ করে। Angular ও NestJS-এ ব্যাপক ব্যবহৃত।

tsconfig সেটআপ

tsconfig.jsonjson
json
{
  "compilerOptions": {
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true
  }
}

Class Decorator

function sealed(constructor: Function): void {
  Object.freeze(constructor);
}

@sealed
class Example {
  name = "রহিম";
}

// Example নতুন property-তে সিল (frozen)

Decorator Factory

function log(label: string) {
  // এটি ফ্যাক্টরি — decorator বানায়
  return function (target: any, key: string, descriptor: PropertyDescriptor) {
    const original = descriptor.value;

    descriptor.value = function (...args: unknown[]) {
      console.log(label + " →", key, args);
      return original.apply(this, args);
    };
  };
}

class Service {
  @log("DB")
  save(data: unknown): void {
    // ...
  }
}

Property ও Parameter Decorator

function readonly(target: any, key: string): void {
  Object.defineProperty(target, key, {
    writable: false,
  });
}

function mark(target: any, key: string, index: number): void {
  // parameter decorator — validation metadata রাখা যায়
}

class Order {
  @readonly
  status = "pending";

  placeOrder(@mark amount: number): void {
    // ...
  }
}
সাবধান

Class decorator এখনও [experimental] না standard — experimentalDecorators থাকলে সতর্কভাবে ব্যবহার করুন। বড় প্রজেক্টে Angular/NestJS-এর নিজস্ব সম্প্রসারিত আচরণের সাথে যেন না মিলে যায় এ খেয়াল করুন।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরModules ও Type DeclarationপরেরReact ও TypeScript
এই পেজে
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com