ReviseAlgo Logo

TypeScript with Node.js

Typing Express Routes, Middleware & Request/Response

Type Express handlers, Request parameters, query strings, and custom middleware.

Last Updated: July 29, 2026 10 min read

Express handlers can be strictly typed using generics on Request from @types/express.

1. Introduction & Architecture

2. Deep Dive & Core Concepts

Express Request generics: 1. P: Route parameters (req.params) 2. ResBody: Response JSON body (res.json()) 3. ReqBody: Inbound payload (req.body) 4. ReqQuery: URL search params (req.query)

3. Basic Code Example

4. Advanced Production Patterns

5. Interactive Code Playground

console.log("Express routes typed using Request & Response generics.");

6. Common Pitfalls & Edge Cases

Note: Express middleware handlers must call next() or return a response promise to avoid leaving incoming HTTP requests hanging.

7. Interview Q&A & Quizzes

Q: How do you add custom properties (like req.user) to Express Requests globally?

A: Using Express module augmentation: declare module 'express-serve-static-core' { interface Request { user?: User } }.

8. Summary Comparison Table

Generic PositionExpress PropertyDescription
1st Genericreq.paramsRoute parameters (/users/:id)
2nd Genericres.json(data)Response body type
3rd Genericreq.bodyRequest POST/PUT body payload
| 4th Generic | req.query | Query parameters (?search=x) |