← Back to TypeScript Course | Chapter 13: TypeScript with Node.js | Lesson 5 of 6

TypeScript के साथ Express

Express को typed web servers और APIs बनाने के लिए TypeScript के साथ combine किया जा सकता है। Type definitions route parameters, request bodies, responses, और middleware describe कर सकती हैं।
Syntax
typescript
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

typescript
// 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

typescript
// 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

typescript
// 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

typescript
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

typescript
// 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");
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. express install करना लेकिन @types/express नहीं, जो Could not find a declaration file for module express देता है।
  2. Handler parameters को any के बजाय Request और Response type करना, जो autocomplete और checks खोता है।
  3. यह मान लेना कि req.body typed है, जब यह default रूप से any है और एक generic या interface चाहता है (साथ में parse करने के लिए express.json() middleware)।
🔒

Chapter Quiz — Complete all 6 topics to unlock

0/6 topics done

Complete these topics first:

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.