类型'Request <ParamsDictionary,any,any,ParsedQs>'上不存在属性'version'

时间:2020-09-17 13:21:11

标签: node.js typescript express

我有以下代码

app.use(function (req: Request, res, next) {
  req.version = req.headers['accept-version'] || '1.0.0';
  next();
});

我有文件 express.d.ts

declare namespace Express {
  export interface Request {
    version?: string | string[];
  }
}

tsconfig.json

  "compilerOptions": {
    // other options
    "typeRoots": ["./typings", "./node_modules/@types"]
  },
  "include": [
    "src/**/*.ts",
    "typings/**/*"
  ],

此设置已解决问题

类型'Request '上不存在属性'version'。

vscode本身中的

。但是,在进行npm run startnodemon时会在终端中引发问题。

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

我通过注意nodemon例如运行的命令来解决此问题。 npm run start:dev

ts-node -r tsconfig-paths/register ./src

然后使用此answer

我仅将-T转储添加到命令中,而只是使用了它。

  "scripts": {
    ...
    "start:dev": "ts-node -T -r tsconfig-paths/register ./src",
    ...
  },

也许有一种方法可以使nodemon做正确的事