TypeScript Academy · leksjon

Angi typer for Express-forespørsler og -svar

Utvid Express-typene for rutingsparametere og -kropper med riktige typer.

Leksjon 2 av 413 trinn

Angi typer for Express-forespørsler og -svar er en gratis leksjon i TypeScript Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i TypeScript Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i TypeScript Academy inneholder totalt 4 leksjoner.

Velkommen

Express har TypeScript-typer via @types/express. Lær hvordan ruter gjøres typesikre.

Installere typer

Installer Express med typedeklarasjonene til pakken.
npm install express
npm install --save-dev @types/express

Grunnleggende rutetyper

Importer Request og Response fra express.
import { Request, Response } from 'express';
app.get('/users', (req: Request, res: Response) => {
  res.json({ users: [] });
});

Typede ruteparametere

Angi typen for path-parametere ved å bruke generics på Request.
interface Params { id: string; }
app.get('/users/:id', (req: Request<Params>, res: Response) => {
  const { id } = req.params;
});

Typet request body

Angi typen for request body med RequestBody-generics.
interface CreateUser { name: string; email: string; }
app.post('/users', (req: Request<{}, {}, CreateUser>, res: Response) => {
  const { name, email } = req.body;
});

Typede query-parametere

Angi typen for query-parametere.
interface Query { page?: string; limit?: string; }
app.get('/users', (req: Request<{}, {}, {}, Query>, res: Response) => {
  const page = parseInt(req.query.page ?? '1');
});

Utvide Request

Legg til egendefinerte egenskaper i Request via module augmentation.
declare global {
  namespace Express {
    interface Request { user?: User; }
  }
}

Typet Response

Bruk generics på Response for å angi typen til JSON-bodyen.
app.get('/me', (req: Request, res: Response<User>) => {
  res.json(req.user!); // response body must be User
});

Typer for feilhåndterere

Express-feilhåndterere har en spesifikk signatur med fire parametere.
import { ErrorRequestHandler } from 'express';
const errHandler: ErrorRequestHandler = (err, req, res, next) => {
  res.status(500).json({ error: err.message });
};

Bruke Router med typer

Typ en Router på samme måte som hovedappen.
import { Router } from 'express';
const router = Router();
router.get('/:id', (req: Request<{ id: string }>, res) => {});

Valideringsmiddleware

Bruk en typet middleware til å validere og snevre inn request-typene.
function parseBody<T>(schema: ZodSchema<T>) {
  return (req: Request, res: Response, next: NextFunction) => {
    req.body = schema.parse(req.body);
    next();
  };
}

Hurtigsjekk

Hva er hovedfordelen ved å bruke @types/express i et TypeScript-prosjekt?

Oppsummering

Typing av Express Request og Response: Bruk generiske typer for Request/Response til params, body og query. Utvid Request via module augmentation for egendefinerte egenskaper. Typ middleware og feilhåndterere med de spesifikke signaturene deres.
Gratis å komme i gang

Lær deg TypeScript med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
101
Leksjoner
352

Ofte stilte spørsmål

Er leksjonen «Angi typer for Express-forespørsler og -svar» gratis?

Ja – hele teksten i «Angi typer for Express-forespørsler og -svar» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av TypeScript Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i TypeScript Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Angi typer for Express-forespørsler og -svar»?

Utvid Express-typene for rutingsparametere og -kropper med riktige typer. Du øver på TypeScript Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med TypeScript Academy?

Ingen tidligere erfaring er nødvendig. TypeScript Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Angi typer for Express-forespørsler og -svar»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne TypeScript Academy-leksjonen?

Ja. Alle TypeScript Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Sette opp TypeScript med Node.js
  2. Angi typer for Express-forespørsler og -svar
  3. Typet mellomvare og feilhåndterere
  4. Miljøvariabler og typet konfigurasjon
← Tilbake til TypeScript Academy