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 Position | Express Property | Description |
|---|---|---|
| 1st Generic | req.params | Route parameters (/users/:id) |
| 2nd Generic | res.json(data) | Response body type |
| 3rd Generic | req.body | Request POST/PUT body payload |
req.query | Query parameters (?search=x) |