У меня есть TypeScript и работает с базовым сервером Express, и я столкнулся с проблемой.
import bodyParser from 'body-parser';
import express, { Express } from 'express';
const app: Express = express();
app.use(bodyParser.json()); // Error 1
app.use(bodyParser.urlencoded({ extended: true })); // Error 2
Ошибка 1 заключается в следующем:
Свойство pop отсутствует в типе NextHandleFunction.[2345]
Итак, bodyParser.json()
возвращает createServer.NextHandleFunction
, но не имеет свойства pop
.NextHandleFunction
определяется следующим образом: @types/connect
:
export type NextHandleFunction = (req: http.IncomingMessage, res: http.ServerResponse, next: NextFunction) => void;
Да, нет pop
.Но каковы мои варианты решения этой проблемы?
Ошибка 2 заключается в следующем:
Тип 'NextHandleFunction' нельзя назначить типу '(string | RegExp)[]».[2345]
Здесь bodyParser.urlencoded()
также возвращает createServer.NextHandleFunction
, но это не тот тип, который ищет app.use()
.
Опять же, не уверен насчет моих вариантовздесь.
package.json
"dependencies": {
"@types/body-parser": "^1.17.0",
"@types/connect": "^3.4.32",
"@types/express": "^4.16.0",
"@types/express-serve-static-core": "^4.16.0",
"body-parser": "^1.18.3",
"express": "^4.15.2",
"express-serve-static-core": "^0.1.1"
},
"devDependencies": {
"typescript": "^3.1.6"
}