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. Mapped Types (ম্যাপড টাইপ)
TypeScriptAdvanced

Mapped Types (ম্যাপড টাইপ)

keyof, mapped type basics, readonly/? modifiers remove এবং real-world utility গড়া — বাংলায়।

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

Mapped type একটি অবজেক্ট টাইপের প্রতিটি প্রপার্টিতে লুপ চালিয়ে নতুন অবজেক্ট টাইপ বানায় — যেমন সব প্রপার্টি boolean করা বা optional করা।

keyof

type Person = { name: string; age: number };

// keyof → "name" | "age"
type PersonKeys = keyof Person;

function getValue(obj: Person, key: PersonKeys): Person[PersonKeys] {
  return obj[key];
}

মৌলিক Mapped Type

// প্রতিটি প্রপার্টিকে boolean-এ বদলে নতুন টাইপ
type OptionsFlags<T> = { [K in keyof T]: boolean };

type Feature = { layout: string; theme: string };
type Flags = OptionsFlags<Feature>;
// → { layout: boolean; theme: boolean }

Modifiers: readonly ও ?

type ReadonlyAll<T> = { readonly [K in keyof T]: T[K] };

type OptionalAll<T> = { [K in keyof T]?: T[K] };

type Person = { name: string; age: number };

type RO_Person = ReadonlyAll<Person>;   // readonly
type Opt_Person = OptionalAll<Person>;  // সব optional

// '-' দিয়ে modifier সরানো হয়
type MyRequired<T> = { [K in keyof T]-?: T[K] };

Real-world প্রয়োগ

// প্রতিটি প্রপার্টির জন্য event handler সৃষ্টি
type EventMap<T> = {
  [K in keyof T as `on${Capitalize<keyof T>}`]: () => Promise<void>;
};

type AppEvents = EventMap<{ load: string; save: string }>;
// → { onLoad: () => Promise<void>; onSave: () => Promise<void> }
keyof + mapped = শক্তি

keyof ও mapped type-এর জুটি টাইপ-স্তরের লুপ। আগের অধ্যায়ের Partical/Record মূলত এই প্যাটার্নেই তৈরি করা।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরConditional Types (শর্তাধীন টাইপ)পরেরTemplate Literal Types
এই পেজে
Tech Tutor

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

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

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

mdanamolhasan1998@gmail.com