TypeScript with Express
@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 };
}- @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
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.