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. Async ও Promise (টাইপ সহ)
TypeScriptIntermediate

Async ও Promise (টাইপ সহ)

Promise<T>, async/await, try/catch এবং typed fetch response — asynchronous কোডে টাইপ ব্যবহার বাংলায়।

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

আধুনিক অ্যাপ আসলে async-ভিত্তিক। TypeScript-এ Promise<T> — T হলো eventual মানের টাইপ — দিয়ে async কোডও পুরো টাইপ-সুরক্ষিত হয়।

Promise<T>

function wait(ms: number): Promise<void> {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

function fetchSettings(): Promise<{ dark: boolean }> {
  return Promise.resolve({ dark: true });
}

fetchSettings().then((settings) => {
  console.log(settings.dark);   // boolean
});

async/await

async function loadUser(id: string): Promise<string> {
  const response = await fetch("/api/users/" + id);
  const data = (await response.json()) as { name: string };
  return data.name;
}

// async ফাংশন সবসময় Promise ফিরত দেয়
const user: Promise<string> = loadUser("u-1");

Error Handling

async function safeLoad(id: string): Promise<{ ok: boolean; error?: string }> {
  try {
    const response = await fetch("/api/users/" + id);
    if (!response.ok) throw new Error("সার্ভার ত্রুটি");
    return { ok: true };
  } catch (error) {
    const message = error instanceof Error ? error.message : "অজানা ত্রুটি";
    return { ok: false, error: message };
  }
}

Typed API Response

interface User {
  id: number;
  name: string;
  email: string;
}

interface ApiResponse<T> {
  data: T;
  message?: string;
}

async function getUsers(): Promise<ApiResponse<User[]>> {
  const response = await fetch("/api/users");
  if (!response.ok) {
    throw new Error("ডেটা পাওয়া যায়নি");
  }
  return (await response.json()) as ApiResponse<User[]>;
}

const users = await getUsers();
users.data.forEach((user) => console.log(user.name));
// Parallel — দুটো আরেকটা fetch একসাথে
const [userA, userB] = await Promise.all([
  getUsers(),
  getUsers(),
]);

// formatError-এ known type-কেবল
type ErrorType = { code: number; message: string };
function formatError(err: unknown): string {
  if (err instanceof Error) return err.message;
  if (typeof err === "object" && err !== null && "code" in err) {
    return (err as ErrorType).message;
  }
  return "অজানা ত্রুটি";
}
fetch-এ টাইপ

response.json() সবসময় any/unknown ফেরত দেয় — তাই interface define করে as বা narrowing করে ব্যবহার করুন। API-তে API-নির্দিষ্ট schema যদি থাকে, তা সবচেয়ে ভালো।

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

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

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

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

mdanamolhasan1998@gmail.com