Типы для req и res в экспрессе? - PullRequest
       9

Типы для req и res в экспрессе?

0 голосов
/ 26 октября 2019

В этой демонстрации я пытаюсь использовать типы Response и Request для параметров req, res. Однако это не компилируется:

const express = require('express');
const app = express();
app.get('/', (req:Request, res:Response) => {
    res.send('Hello Express Lovers!');
});
app.listen(3000, () => console.log('server started'));

Ошибка:

           ^
TSError: ⨯ Unable to compile TypeScript:
index.ts:4:9 - error TS2339: Property 'send' does not exist on type'Response'.

1 Ответ

2 голосов
/ 26 октября 2019

Вы должны импортировать Express TypeScript таким образом, чтобы его типы (в @types/express) совпадали, позволяя выводить типы req и res из app.get:

import * as express from 'express';
const app = express();
app.get('/', (req, res) => {
    res.send('Hello Express Lovers!');
});
app.listen(3000, () => console.log('server started'));

обновленная демоверсия

Если вы все равно захотите ввести их явно, вам придется импортировать типы:

import * as express from 'express';
import {Request, Response} from 'express';
const app = express();
app.get('/', (req: Request, res: Response) => {
    res.send('Hello Express Lovers!');
});
app.listen(3000, () => console.log('server started'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...