🚂
TypeScript with Frameworks

TypeScript with Express

Typed Routes & Middleware
💡 TypeScript, ke, saath, Express, EK, "LABELED, MAIL, SYSTEM" jaisa, hai — HAR, request, aur, response, object, ka, EXACT, SHAPE, PATA, hota hai, isliye, req.body, mein, GALAT, FIELD, ACCESS, karne, PAR, COMPILE-TIME, PAR, hi, ERROR, aata hai.

@types/express, se, Request, Response, aur, NextFunction, jaise, types, milte, HAIN — route, handlers, ko, PROPERLY, type, kiya, ja, sakta hai. Generic, Request<Params, ResBody, ReqBody>, se, req.body, aur, req.params, ko, bhi, TYPE, kiya, ja, sakta hai.

Custom, MIDDLEWARE, ke, liye, Request, INTERFACE, ko, EXTEND, kiya, ja, sakta hai (jaise, req.user, ADD, karne, ke, liye, AUTH, middleware, ke, BAAD).

import { Request, Response, NextFunction } from "express";

interface CreateUserBody {
  name: string;
  email: string;
}

app.post("/users", (req: Request<{}, {}, CreateUserBody>, res: Response) => {
  const { name, email } = req.body;   // fully, typed
  res.json({ name, email });
});

// Custom Request extension:
interface AuthRequest extends Request {
  user?: { id: number };
}
🚂
TypeScript, ke, saath, Express, EK, "LABELED, MAIL, SYSTEM" jaisa, hai — HAR, request, aur, response, object, ka, EXACT, SHAPE, PATA, hota hai, isliye, req.body, mein, GALAT, FIELD, ACCESS, karne, PAR, COMPILE-TIME, PAR, hi, ERROR, aata hai.
1 / 2
⚡ Quick Recap
  • @types/express = Request, Response, NextFunction, jaise, types
  • Generic Request<Params, ResBody, ReqBody> = req.body/params, ko, TYPE, karta, hai
  • Request interface, extend, karके, custom, properties, (jaise, user) ADD, ki, ja, sakti, hain
Is page mein (2 subtopics)

Express, 4, mein, ASYNC, route, handlers, ke, errors, ko, TYPE-SAFELY, HANDLE, karne, ke, liye, EK, wrapper, function, banaya, ja, sakta hai, JO, PROMISE, rejections, ko, next() ko, PASS, karta hai.

function asyncHandler(fn: (req: Request, res: Response, next: NextFunction) => Promise<void>) {
  return (req: Request, res: Response, next: NextFunction) => {
    fn(req, res, next).catch(next);
  };
}

Request<{ id: string }>, se, req.params.id, ko, STRICTLY, TYPE, kiya, ja, sakta hai — bina, ISKE, req.params, ki, SAARI, properties, generic, string, TYPE, ki, HOTI, HAIN.

💡Tip: URL, parameters, HAMESHA, strings, HOTE, HAIN, (chahe, WOH, numbers, jaise, DIKHEIN) — Number(req.params.id), se, EXPLICITLY, CONVERT, karna, ZAROORI, hai.