TypeScript Academy · Lektion

Typannotera Express Request och Response

Utöka Express-typer för typade route-parametrar och request bodies

Lektion 2 av 413 steg

Typannotera Express Request och Response är en gratis lektion i TypeScript Academy på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för TypeScript Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i TypeScript Academy innehåller totalt 4 lektioner.

Välkommen

Express har TypeScript-typer via @types/express. Lär er göra routes typsäkra.

Installera typer

Installera Express med dess typdefinitioner.
npm install express
npm install --save-dev @types/express

Grundläggande routetyper

Importera Request och Response från express.
import { Request, Response } from 'express';
app.get('/users', (req: Request, res: Response) => {
  res.json({ users: [] });
});

Typbestämda routeparametrar

Typbestäm sökvägsparametrar med generics på Request.
interface Params { id: string; }
app.get('/users/:id', (req: Request<Params>, res: Response) => {
  const { id } = req.params;
});

Typbestämd request body

Typbestäm request body med RequestBody-genericen.
interface CreateUser { name: string; email: string; }
app.post('/users', (req: Request<{}, {}, CreateUser>, res: Response) => {
  const { name, email } = req.body;
});

Typbestämda query-parametrar

Typbestäm parametrar i query-strängen.
interface Query { page?: string; limit?: string; }
app.get('/users', (req: Request<{}, {}, {}, Query>, res: Response) => {
  const page = parseInt(req.query.page ?? '1');
});

Utöka Request

Lägg till anpassade egenskaper i Request via modulaugmentation.
declare global {
  namespace Express {
    interface Request { user?: User; }
  }
}

Typbestämt Response

Kedja generics på Response för att typbestämma JSON-body.
app.get('/me', (req: Request, res: Response<User>) => {
  res.json(req.user!); // response body must be User
});

Typer för felhanterare

Express-felhanterare har en specifik signatur med fyra parametrar.
import { ErrorRequestHandler } from 'express';
const errHandler: ErrorRequestHandler = (err, req, res, next) => {
  res.status(500).json({ error: err.message });
};

Använda Router med typer

Typbestäm en Router på samma sätt som huvudappen.
import { Router } from 'express';
const router = Router();
router.get('/:id', (req: Request<{ id: string }>, res) => {});

Valideringsmiddleware

Använd en typbestämd middleware för att validera och begränsa request-typer.
function parseBody<T>(schema: ZodSchema<T>) {
  return (req: Request, res: Response, next: NextFunction) => {
    req.body = schema.parse(req.body);
    next();
  };
}

Snabbkontroll

Vilken är den främsta fördelen med att använda @types/express i ett TypeScript-projekt?

Sammanfattning

Typbestämning av Express Request och Response: använd Request/Response-generics för parametrar, body och query. Utöka Request via modulaugmentation för anpassade egenskaper. Typbestäm middleware och felhanterare med deras specifika signaturer.
Gratis att börja

Lär dig TypeScript med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
101
Lektioner
352

Vanliga frågor

Är lektionen ”Typannotera Express Request och Response” gratis?

Ja – hela texten till ”Typannotera Express Request och Response” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i TypeScript Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i TypeScript Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Typannotera Express Request och Response”?

Utöka Express-typer för typade route-parametrar och request bodies Ni övar på TypeScript Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig TypeScript Academy?

Du behöver inga förkunskaper. Utbildningen i TypeScript Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Typannotera Express Request och Response”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här TypeScript Academy-lektionen?

Ja. Varje TypeScript Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Konfigurera TypeScript med Node.js
  2. Typannotera Express Request och Response
  3. Typat middleware och felhanterare
  4. Miljövariabler och typning av konfiguration
← Tillbaka till TypeScript Academy