TypeScript के साथ Express
In this page:
import express, { Request, Response } from "express";
const app = express();
app.get("/path", (req: Request, res: Response) => {
res.send("text");
});
Express Types Install करना
express package के साथ-साथ @types/express install करना TypeScript को Express का API समझने के लिए ज़रूरी है, क्योंकि Express plain JavaScript में लिखा है जिसके types अलग से publish किए गए हैं।
उदाहरण: Installing Express Types
// npm install express
// npm install --save-dev @types/express
console.log("@types/express provides Express's type definitions");
एक Express App बनाना
express() से एक Express app बनाना एक typed Express application instance return करता है, .get(), .use(), और .listen() जैसे methods को आपके pass किए callbacks और options पर पूरी type-checking देते हुए।
उदाहरण: Creating an Express App
// import express, { Express } from "express";
// const app: Express = express();
// app.listen(3000);
console.log("express() returns a typed Express application instance");
Typed Route Handlers
Typed route handlers @types/express से Request और Response parameters receive करते हैं, req.params और res.json() जैसी चीज़ों तक typed access expose करते हुए, उन्हें untyped any छोड़ने के बजाय।
उदाहरण: Typed Route Handlers
// import { Request, Response } from "express";
// app.get("/users/:id", (req: Request, res: Response) => {
// res.json({ id: req.params.id });
// });
console.log("Route handlers get typed Request/Response parameters");
Typed Request Data
Request data — जैसे req.body या req.query — को type करना अक्सर एक explicit generic या interface चाहता है, क्योंकि Express के default types सिर्फ request object के खुद के shape को जानते हैं, न कि आपका specific route क्या receive करने की उम्मीद करता है।
उदाहरण: Typed Request Data
interface CreateUserBody {
name: string;
}
// app.post("/users", (req: Request<{}, {}, CreateUserBody>, res: Response) => {
// console.log(req.body.name);
// });
console.log("req.body typed via an explicit generic/interface");
Typed Middleware
Typed middleware functions Express के (req, res, next) signature को Request, Response, और NextFunction के against typed follow करते हैं, यह सुनिश्चित करते हुए कि एक middleware जो next() call करना भूल जाए या response का misuse करे runtime से पहले पकड़ ली जाए।
उदाहरण: Typed Middleware
// import { Request, Response, NextFunction } from "express";
// function logger(req: Request, res: Response, next: NextFunction) {
// console.log(req.method, req.url);
// next();
// }
console.log("Middleware typed against Request, Response, NextFunction");
expressinstall करना लेकिन@types/expressनहीं, जोCould not find a declaration file for module expressदेता है।- Handler parameters को
anyके बजायRequestऔरResponsetype करना, जो autocomplete और checks खोता है। - यह मान लेना कि
req.bodytyped है, जब यह default रूप सेanyहै और एक generic या interface चाहता है (साथ में parse करने के लिएexpress.json()middleware)।
Chapter Quiz — Complete all 6 topics to unlock
0/6 topics done
Complete these topics first: